特定の文字列のすべての順列を見つけるためのこのシンプルでエレガントな python ソリューションを読みました。再帰的です。それに基づいて、Pythonで反復ソリューションを実装しようとしました。
以下は私のコードです。しかし、それは3つの文字列に対してのみ機能します:(再帰ベースケース条件と再帰条件がどのように反復(非再帰)に変換されるかを確認しようとしてスタックしました。他の)
def permutations_iter(word):
while True:
perms = []
result = []
char = word[0]
new_word = word[1:]
if len(new_word)==2:
perms = [new_word,''.join(reversed(new_word))]
for perm in perms:
#insert the character into every possible location
for i in range(len(perm)+1):
result.append(perm[:i] + char + perm[i:])
return result
if len(new_word)==2:
break;
#example code to call this iterative function
print permutations_iter("LSE")