<p>我很抱歉已经有很多关于这个问题的帖子了。然而,我很难看到我自己的实现中哪里出错了。所以我试图写一个函数,它接受一个字符串,并以列表的形式返回所有可能的排列。在</p>
<p>理论上应该是这样的:</p>
<p>allPermutations(“abc…z”)=[a+所有置换(b,c,…z),b+所有置换(a,c…z)….]</p>
<p>我当前的实现在字符串“Hello”上测试时,输出了一堆重复的置换。谁能帮我看看哪里出了问题。谢谢你的帮助!在</p>
<p>代码如下:</p>
<pre><code>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.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(i+t)
return perm_list
</code></pre>
<p>请仔细查看<code>itertools</code>模块。只是这样:</p>
<pre><code>import itertools
[ ''.join(i) for i in itertools.permutations(mystring) ]
</code></pre>
<p>一个例子:</p>
^{2}$