来自 python 的文档:https://docs.python.org/2/library/itertools.html#itertools.combinations
查看 combinations_with_replacement:“# combinations_with_replacement('ABC', 2) --> AA AB AC BB BC CC”
我想使用相同的功能,并生成“BA”、“CA”和“CB”。
itertools.product
绝对是您在这里寻找的方法。正如文档所述,它实际上是一个紧凑的 for 循环; 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
,按顺序。