给定一列字符,生成指定长度的所有可能的组合:
如:a,b,c,d,e 或 0-9
生成长度 1:a, b, c, d, e; 长度2 :aa, ab, ac, ad, ae, ba, bb, bc, bd, be,................ee
<?php
function de($len, $pos = 0) {
static $bit = [];
static $source = ['a', 'b', 'c', 'd', 'e'];/*[0, 1, 2, 3, 4, 5, 6, 7, 8, 9];*/
$pos++;
for($i = 0; $i < count($source); $i++) {
$bit[$pos] = $source[$i];
if ($pos < $len) {
de($len, $pos);
} else {
echo implode('', $bit)."\n";
}
}
}
用phpcmd小助手( https://github.com/dclnet/phpcmd)运行代码
以上为长度为1
长度为2的。