在PHP中生成字符串的所有组合

时间:2017-03-15 15:01:46

标签: php string algorithm combinations permutation

我正在尝试使用PHP生成字符串的所有可能组合。我搜索了这个网站一段时间试图找到正确的算法,但我似乎无法找到正确的算法。更具体地说,如果我输入字符串“hi”,我希望它返回“hi”,“ih”,“h”,“i”。但我不希望它多次重复使用相同的字符。所以我不想要“......”和“ii”。有算法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

不要把它用于生产:

$string = implode('',array_unique(str_split('helpa')));
$i=0;
while($i++<50000){
   $coll[substr(str_shuffle($string),0,mt_rand(1,strlen($string)))]=true;
}
ksort($coll);
print '<pre>';
print_r(array_keys($coll));

在这里,您可以测试您想要获得的内容。

在10000次迭代中,我从5个长度的字符串中获得了325个组合 (似乎所有可能的组合)