我很抱歉已经有很多关于这个问题的帖子。但是,我很难在自己的实现中看到哪里出了问题。所以我正在尝试编写一个函数,它接收一个字符串并以列表的形式返回所有可能的排列。
理论上它应该是这样的:
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