与python中的重复组合,其中顺序很重要

Ale*_*der 5 python combinations combinatorics cartesian-product python-itertools

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

见组合_with_replacement:“#组合_与替换('ABC',2)--> AA AB AC BB BC CC”

我想使用相同的功能,附带生成“BA”、“CA”和“CB”的奖励。

Mut*_*pus 7

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顺序为您提供 tuples 。