很抱歉,关于这个问题已经有很多帖子了。然而,我自己的实现中却很难看出我的错误所在。因此,我正在尝试编写一个函数,它接受一个字符串并以列表形式返回所有可能的排列。
理论上它应该像这样:
allPermutations("abc...z") = [a + allPermutations(b,c,...z), b + allPermutations(a,c...z)...]
我的当前实现,在测试字符串"Hello"时输出了许多重复的排列。有人能帮我看看我哪里出错了吗?感谢您的帮助!
以下是代码:
def allPermutations(strng):
if len(strng) ==1:
return [strng]
perm_list = []
for i in strng:
smallerStr = strng.replace(i,"",1)
z = allPermutations(smallerStr)
for t in z:
perm_list.append(i+t)
return perm_list