【发布时间】:2014-11-07 14:21:30
【问题描述】:
假设我有元组 (3, 2, 1, 4)。我想找到所有可能的组合,包括从 range(5) 中获取 3 个元素,从 range(5) 中获取 2 个元素,从 range(5) 中获取 1 个元素,然后从 range(5) 中获取 4 个元素。每个单独组合之间的顺序很重要,所以我不能只从 range(5) 或类似的东西中获取长度为 9 的组合。
如果我上面写的不清楚,可能是一个示例组合
[0, 1, 4, 2, 3, 2, 0, 1, 2, 3].
我在上面的列表中引入了间距,只是为了说明它们之间的顺序很重要。
我想这应该很容易用 itertools 实现,但我就是不知道怎么做。
【问题讨论】:
-
是否需要对子选择进行排序(以便样本可以以
[0, 1, 4]开头,但不能以[0, 4, 1]开头)? -
@DSM 不,子选择中的顺序无关紧要。
-
我可能没有问得那么好。您是否需要以
[0,4,1]开头的示例变体显示在输出中? -
我不需要这些变体出现在输出中,事实上我需要它们不出现。 (我希望我能准确地解释你的问题。)
-
是的,就是这样。 :-)
标签: python python-3.x combinations itertools