在python中重复组合,其中命令MATTERS

时间:2016-03-06 03:06:03

标签: python combinations itertools

来自python的文档:https://docs.python.org/2/library/itertools.html#itertools.combinations

请参阅combination_with_replacement:"#combinations_with_replacement(' ABC',2) - > AA AB AC BB BC CC"

我希望使用相同的功能,以及生成" BA"," CA"和" CB"。

1 个答案:

答案 0 :(得分:1)

itertools.product绝对是您在这里寻找的方法。正如文档所述,它实际上是一个紧凑的循环; product(A,B)相当于((x, y) for x in A for y in B)

product会返回它可以的所有元素组合,特定于订单,因此product('ABC', 'DEF', 'GHI')会为您提供ADG, ADH, ADI, AEG [...] CFI。如果要包含重复,请设置可选的repeat变量。 product(A, repeat=4)相当于product(A,A,A,A)。同样,product(A, B, repeat=3)product(A,B,A,B,A,B)相同。

简而言之:要获得您正在寻找的结果,请致电itertools.product('ABC', repeat=2)。这将按顺序为您提供元组AA, AB, AC, BA, BB, BC, CA, CB, CC