字符串python的所有元素排列

时间:2013-07-24 11:21:12

标签: python python-2.7

我是python的新手。

我有一个用逗号分隔的字符串。 像'a,b,c,d'

我需要将元素分开,然后需要找到逗号分隔元素的所有可能的排列。

由于

3 个答案:

答案 0 :(得分:6)

你可以使用itertools模块的排列

>>> a = 'aaa,bbb,ccc'
>>> b = a.split(',')
>>> import itertools
>>> list(itertools.permutations(b))
>>> [('aaa', 'bbb', 'ccc'), ('aaa', 'ccc', 'bbb'), ('bbb', 'aaa', 'ccc'), ('bbb', 'c
cc', 'aaa'), ('ccc', 'aaa', 'bbb'), ('ccc', 'bbb', 'aaa')]

答案 1 :(得分:3)

您在寻找itertools.permutations()吗?

>>> import itertools
>>> for elem in itertools.permutations(testStr.split(',')):
        print ",".join(elem)


a,b,c,d
a,b,d,c
a,c,b,d
a,c,d,b
a,d,b,c
a,d,c,b
b,a,c,d
...

答案 2 :(得分:0)

itertools最好

这是传统的递归技术

def permu(s, e=''):
    if len(s) == 0: print ",".join([ i for i in e])
    else:
        for i in range(len(s)):
            permu(s[0:i] + s[i+1:], e+s[i])

str="a,b,c,d"
permu("".join(str.split(',')))