//位数
int digit = 5;
//每一位再最大值如十进制就是10十六进制就是16=>f
int number = 10;
//关键解法
List<List<int>> c = System.Linq.Enumerable.Repeat(System.Linq.Enumerable.Range(0, number), digit) .Aggregate(System.Linq.Enumerable.Repeat(new List<int>(), number), (ir, ot) => ir.SelectMany(h => ot.Select(j => h.Concat(new List<int>() { j }).ToList()))).ToList();
//验证
Console.Write(c.Count);
Console.ReadKey();
12-17