Python - 按照可能出现的每个顺序创建X和Y的列表

时间:2014-03-15 02:50:34

标签: python list element

每个元素的长度为n。 例如,如果我想列出X和Y的1次列表 那么=> ['X','Y']

2次: => [ 'XX,' YY”, 'XY', 'YX']

3次: => ['XXX','YYY','XYY','XYX','XXY','YYX'等......]

提前致谢!

2 个答案:

答案 0 :(得分:3)

您正在寻找itertools.product

from itertools import product
for i in xrange(1, 4):
    print ["".join(item) for item in product("01", repeat = i)]

# ['0', '1']
# ['00', '01', '10', '11']
# ['000', '001', '010', '011', '100', '101', '110', '111']

答案 1 :(得分:0)

我认为combination_with_replacement正是您所寻找的。这是0-5的示例。

from itertools import *
for i in range(5):
    print(list(itertools.combinations_with_replacement("XY",i)))

输出:

 [()]
 [('X',), ('Y',)]
 [('X', 'X'), ('X', 'Y'), ('Y', 'Y')]
 [('X', 'X', 'X'), ('X', 'X', 'Y'), ('X', 'Y', 'Y'), ('Y', 'Y', 'Y')]
 [('X', 'X', 'X', 'X'), ('X', 'X', 'X', 'Y'), ('X', 'X', 'Y', 'Y'), ('X', 'Y', 'Y', 'Y'), ('Y', 'Y', 'Y', 'Y')]