递归处理,思路如下(例子就用 1-5,3 位)
第一次( 1 位数时的可能值)
$list = [1, 2, 3, 4, 5]
第二次( 2 位数时的可能值,在 1 位数的基础上处理)
分别取$list 中的值加上 1~5,1~5 具体位置并不影响最后加值
1 -> 2, 3, 4, 5, 6
2 -> 3, 4, 5, 6, 7
3 -> 4, 5, 6, 7, 8
....
做个并集
最后$list = [2, 3, 4, 5, 6, 7, 8, 9, 10]
第三次依次
最后$list = [3, 4, 5 , 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
可能说的不够清楚。原理其实很简单,最后统计加值的时候其实和数字具体在哪个位置无关,所以可以按位数依次加上所有可能的值进行扩展,知道扩展到你想要的位数位置。