我有一个数据框列的列表,L。L=[AA , AS , AD , BB , BC , C , D ]我需要所有项目的组合,没有特定的顺序。所以我可以使用我认为的排列?然而,我只能在每个组合中有一个 A 和一个 B;所以我需要组合A=[AA,AS,AD]B=[BB,BC]All others=[C,D]我也不需要所有的项目都出现在输出的排列中。下面是一些示例组合:AA,BB,C,DAA,BB,CAAAA,BB有人能帮忙吗?
1 回答

aluckdog
TA贡献1847条经验 获得超7个赞
我认为您需要笛卡尔积。你可以用itertools.product. 由于您不需要每个元素,您可以附加None到每个列表并在之后删除它们。
下面是一个例子:
from itertools import product
for choices in product(['AA','AS','AD',None],['BB', 'BC', None], ['C', None], ['D', None]):
print(' '.join(column for column in choices if column))
它输出:
AA BB C D
AA BB C
AA BB D
AA BB
AA BC C D
AA BC C
AA BC D
AA BC
AA C D
AA C
AA D
AA
AS BB C D
AS BB C
AS BB D
AS BB
AS BC C D
AS BC C
AS BC D
AS BC
AS C D
AS C
AS D
AS
AD BB C D
AD BB C
AD BB D
AD BB
AD BC C D
AD BC C
AD BC D
AD BC
AD C D
AD C
AD D
AD
BB C D
BB C
BB D
BB
BC C D
BC C
BC D
BC
C D
C
D
添加回答
举报
0/150
提交
取消