Php 如何递归迭代字母表?

Php 如何递归迭代字母表?,php,algorithm,iteration,Php,Algorithm,Iteration,我需要写一个循环字母表(a-z)的函数,如下: (以下是a-c的一个示例) 你知道怎么做吗?我想我需要一些递归函数。为什么需要递归呢?它可以是尾部递归的(这意味着它可以迭代完成)。例如,这里是Python的一次尝试。您已经标记了PHP,因此如果PHP有类似的库,您可以尝试使用它或在代码中实现相应的函数 import itertools mystr = "abcde" for i in range(1,len(mystr)): for each in itertools.combina

我需要写一个循环字母表(a-z)的函数,如下:
(以下是a-c的一个示例)


你知道怎么做吗?我想我需要一些递归函数。

为什么需要递归呢?它可以是尾部递归的(这意味着它可以迭代完成)。例如,这里是Python的一次尝试。您已经标记了PHP,因此如果PHP有类似的库,您可以尝试使用它或在代码中实现相应的函数

import itertools

mystr = "abcde"

for i in range(1,len(mystr)):
    for each in itertools.combinations_with_replacement(mystr,i):
        print "".join(each)

为什么需要递归来实现这个呢?它可以是尾部递归的(这意味着它可以迭代完成)。例如,这里是Python的一次尝试。您已经标记了PHP,因此如果PHP有类似的库,您可以尝试使用它或在代码中实现相应的函数

import itertools

mystr = "abcde"

for i in range(1,len(mystr)):
    for each in itertools.combinations_with_replacement(mystr,i):
        print "".join(each)

这是一种快速递归方法:

function loopchars($maxlvl,$lvlnow,$cstr){
$chars = array(); //put the chaaracters in here
for($i=0;$i<count($chars);$i++){
$uj=$cstr.$chars[$i];
if($lvlnow==$maxlvl){echo $uj.'<br />';}
else{loopchars($maxlvl,$lvlnow+1,$uj);}
}
}
for($i=1;$i<6;$i++){
loopchars($i,1,'');
}
函数loopchars($maxlvl、$lvlnow、$cstr){
$chars=array();//将字符放在这里

对于($i=0;$i),这是一种快速递归方法:

function loopchars($maxlvl,$lvlnow,$cstr){
$chars = array(); //put the chaaracters in here
for($i=0;$i<count($chars);$i++){
$uj=$cstr.$chars[$i];
if($lvlnow==$maxlvl){echo $uj.'<br />';}
else{loopchars($maxlvl,$lvlnow+1,$uj);}
}
}
for($i=1;$i<6;$i++){
loopchars($i,1,'');
}
函数loopchars($maxlvl、$lvlnow、$cstr){
$chars=array();//将字符放在这里
对于($i=0;$i不需要递归

for($char = 'a'; $char != 'aaaaaa'; $char++){
    echo $char . PHP_EOL;
}
不需要递归

for($char = 'a'; $char != 'aaaaaa'; $char++){
    echo $char . PHP_EOL;
}

谢谢,这在python中非常有效,我们将尝试将其导出到php。谢谢,这在python中非常有效,我们将尝试将其导出到php。哇,这真是棒极了,快速且简短:)谢谢Gordon和Grexis。哇是对的,我现在要删除我的答案,因为这很尴尬,哈哈。这非常简单,是的。很好的解决方案。我仍然说你不应该删除任何正常有效的答案,也许在某些情况下它们更有用,或者它们可以提供额外的方法,这很好。:)没关系。我有一次得到了一个类似axiomer的答案,然后有人发布了这个,我觉得自己像个白痴。php处理不同数据类型的方式很有趣。最好使用!=而不是哇,这太棒了,又快又短:)谢谢Gordon和Grexis。哇是对的,我现在将删除我的答案,因为这很尴尬,哈哈。这太糟糕了很简单,是的。很好的解决方案。我仍然说,你不应该删除任何正常且有效的答案,也许在某些情况下,它们更有用,或者它们可以提供额外的方法,这很好。:)没关系。我曾经有一个类似axiomer的答案,然后有人发布了这个,我觉得自己像个白痴。php如何处理不同的数据类型很有趣.最好使用!=而不是