可能重复:
Generate all combinations of arbitrary alphabet up to arbitrary length
我试着用php写10个字母(Zzzzzzzzzz)的所有可能的单词。我怎么能这么做?看起来是这样的:http://i.imgur.com/sgUnL.png
我尝试了一些方法,但他们只是随机制作10个字母,而不是从一个字母增加。顺便说一句,执行时间和它有多大并不是问题。我只需要算法,如果有人用代码显示它,那当然会更有帮助。
发布于 2011-09-01 13:02:22
第1版:
for($s = 'a'; $s <= 'zzzzzzzzzz'; print $s++.PHP_EOL);正如Paul在下面的评论中所指出的,这只会出现在zzzzzzzzyz上。慢一点(如果有人关心的话),但是正确的版本是:
//modified to include arnaud576875's method of checking exit condition
for($s = 'a'; !isset($s[10]); print $s++.PHP_EOL);发布于 2011-09-01 12:46:42
function words($length, $prefix='') {
if ($length == 0) return;
foreach(range('a', 'z') as $letter) {
echo $prefix . $letter, "\n";
words($length-1, $prefix . $letter);
}
}用法:
words(10);在这里试一试:http://codepad.org/zdTGLtjY (单词最多3个字母)
发布于 2011-09-01 13:37:41
<?php
function makeWord($length, $prefix='')
{
if ($length <= 0)
{
echo $prefix . "\n";
return;
}
foreach(range('a', 'z') as $letter)
{
makeWord($length - 1, $prefix . $letter);
}
}
// Use the function to write the words.
$minSize = 1;
$maxSize = 3;
for ($i = $minSize; $i <= $maxSize; $i++)
{
makeWord($i);
}
?>https://stackoverflow.com/questions/7270372
复制相似问题