Pour y aller de manière itérative, c'est le même principe que le code récursif : la boucle extérieure itère sur le numéro du caractère qui sera ajouté, la boucle intérieure sur tous les caractères potentiels, une troisième boucle sur tous les mots de longueur inférieure, où on génère enfin un nouveau mot. En pseudo-Python (non testé, donc), la troisième boucle correspondant à une compréhension de liste :
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 generated = [[""]] for i in range(1, 12): for c in 'a' upto 'z': generated[i] = [w + c for w in generated[i - 1]]
Maintenant, si tu veux le code le plus rapide pour générer ces séquences de longueur constante, le mieux est probablement d'écrire explicitement tes douze boucles, puis de laisser le compilateur faire son travail (le code sera nettement plus simple, pas d'histoire d'accumulateur ou que sais-je, ses heuristiques d'optimisation pourront fonctionner à plein).
Partager