【发布时间】:2021-05-05 18:55:38
【问题描述】:
给定两个列表 X 和 Y:
X = ['A', 'B', 'C', 'D']
Y = ['I', 'J', 'K', 'L', 'M', 'N']
如何创建所有可能的 4 个组合的集合,并限制考虑至少 2 个元素 X 和 Y。例如,有效的组合如下所示:
[('A', 'J', 'M', 'D'), ..., ('I', 'M', 'B', 'C')]
原因是它包含来自X 和Y 的2 个元素。 [('A', 'B', 'M', 'D')] 的组合无效,因为它包含来自 X 的 3 个元素和来自 Y 的 1 个元素。到目前为止,我尝试:
import itertools
set(list(itertools.permutations([e for e in zip(X, Y)])))
但是,这违反了配额限制。实现配额排列的正确方法是什么?
【问题讨论】:
标签: python combinations permutation itertools