7

特定の文字列のすべての順列を見つけるためのこのシンプルでエレガントな 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")   
4

1 に答える 1