Python组合没有重复 - Pyncomb?

pei*_*ixe 6 python combinatorics

我正在尝试用Python中的数据做一些组合的东西.我看了如何在Python中生成列表的所有排列的问题,但认为这不符合我的需要..我有这种类型的数据...:

    group1-Steve
    group1-Mark
    group1-Tom
    group2-Brett
    group2-Mick
    group2-Foo
    group3-Dan
    group3-Phil
Run Code Online (Sandbox Code Playgroud)

...我需要制作三个元素的所有可能组合,每组只有一个,不重复,保存到每个组合的列表.

我知道在这种情况下有18种可能的不同组合(3*3*2 = 18),但不知道我怎么能写这段代码.我读过Pyncomb包,但不知道在这种情况下应用的功能; 也许有一个功能可以完成这项工作.

希望有人能帮助我......

提前致谢;

PEIXE

Sve*_*ach 9

最简单的方法是使用itertools.product():

group1 = ["Steve", "Mark", "Tom"]
group2 = ["Brett", "Mick", "Foo"]
group3 = ["Dan", "Phil"]
for x in itertools.product(group1, group2, group3):
    print x
Run Code Online (Sandbox Code Playgroud)

版画

('Steve', 'Brett', 'Dan')
('Steve', 'Brett', 'Phil')
('Steve', 'Mick', 'Dan')
('Steve', 'Mick', 'Phil')
('Steve', 'Foo', 'Dan')
('Steve', 'Foo', 'Phil')
('Mark', 'Brett', 'Dan')
('Mark', 'Brett', 'Phil')
('Mark', 'Mick', 'Dan')
('Mark', 'Mick', 'Phil')
('Mark', 'Foo', 'Dan')
('Mark', 'Foo', 'Phil')
('Tom', 'Brett', 'Dan')
('Tom', 'Brett', 'Phil')
('Tom', 'Mick', 'Dan')
('Tom', 'Mick', 'Phil')
('Tom', 'Foo', 'Dan')
('Tom', 'Foo', 'Phil')
Run Code Online (Sandbox Code Playgroud)