我阅读了这个简单而优雅的 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")