擅长:python、mysql、java
<p>正如评论中指出的,<code>itertools.premutations</code>或者更好地看一下@DSM的答案,因为这个答案漏掉了双倍数:</p>
<pre><code>In [194]: from itertools import chain, permutations
In [195]: s = 'abcd'
In [196]: map(''.join,chain.from_iterable(permutations(s,x)
for x in range(1,len(s)+1)))
Out[196]:
['a',
'b',
'c',
'd',
'ab',
'ac',
'ad',
'ba',
'bc',
'bd',
...
'dbca',
'dcab',
'dcba']
</code></pre>
<p>无论如何,下面是@DSM的答案的一个版本,它返回一个列表:</p>
^{pr2}$