求数组排列组合算法
数组
{A,B,C,D}
{a,b,c,d}
求数组的所有排列,得到的结果应该是:
{a,B,C,D}
{A,b,C,D}
{A,B,c,D}
{A,B,C,d}
{a,b,C,D}
{a,B,c,D}
{a,B,C,d}
{a,b,c,D}
.......
.......
........
数组等长。
[解决办法]
- C# code
string[] source1 = new string[] { "A", "B", "C", "D" };string[] source2 = new string[] { "1", "2", "3", "4" };List<string[]> list = new List<string[]>();for (int i = 0; i < 16; i++){ string[] s = source1.ToArray(); for (int j = 0; j < 4; j++) { if (i & (2 << j - 1) == i) s[j] = source2[j]; } list.Add(s);}