给定一个字符串,1,2,3,4 每次从中抽取一个字符串,共取3次,列出所有的可能性。一共4*4*4=56种111
112
121
122
。。如果从M个字符串中获取N个,也就一共有M的N次方可能,怎么用算法列出所有的可能????

解决方案 »

  1.   

    var list = new string[] { "1", "2", "3", "4" };
                var array = list.SelectMany(t => list.SelectMany(tt => list.Select(ttt => t + tt + ttt))).ToList();
                foreach (var t in array)
                    Console.WriteLine(t);
                
      

  2.   

    还是自己想出来的
    static List<string> GetAllZuhe(List<string> list, int n)
            {
                if (n == 1)
                {
                    return list;
                }
                else
                {
                    List<string> rl = new List<string>();
                    foreach (string x in list)
                    {
                        foreach (string y in GetAllZuhe(list, n - 1))
                        {
                            rl.Add(x + y);
                        }
                    }
                    return rl;
                }
            }
        }唉,学会思考