Как рекурсивно перевести алфавит?

Мне нужно написать функцию, которая выполняет итерацию через алфавит (az) следующим образом:
(здесь приведен пример для переменного тока)

a b c aa ab ac ba bb bc ca cb cc aaa aab aac ... and so on. (until the word has 5 characters) 

есть идеи как это сделать? Наверное, мне нужна рекурсивная функция.

Нет необходимости в рекурсии!

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

Это быстрый рекурсивный способ сделать это:

 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($n,1,''); делает итерации $ n-го уровня, поэтому цикл делает каждый уровень между 1 и 5.

Зачем вам нужна рекурсия для этого? Это может быть хвост рекурсивный (что означает, что это можно было бы сделать только итеративно). Например, вот попытка в 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)