【发布时间】:2017-11-19 19:06:06
【问题描述】:
所以,我从这个数组开始:
array = ['A', 'B', 'C', 'D', 'E', 'F']
我玩了一会儿,然后让 python 打印每个独特的、不重复的组合,如下所示:
AB,
AC,
AD,
AE,
AF,
BC,
BD,
BE,
BF,
CD,
CE,
CF,
DE,
DF,
EF,
但是现在,我想将所有这些都放入一个新数组中:
array2 = ['AB', 'AC', 'AD'...., 'EF']
并打印所有 3 元素长的组合,不包括重新排列,没有重复。
我所说的“不重复”是什么意思:
AB、CD 和 EF 是没有重复的 3 元素长组合,但 AB、BD 和 EF 是带有重复的 3 元素长组合,如 @ 987654331@ 出现在“AB”和“BD'”中。
我所说的“不包括重新排列”是什么意思:
AB、CD、EF 与 BA、DC、FE 相同,因为所有 2 字母元素都是相同的(BA 是 AB 重排,DC 是 CD 重排,FE 是 EF 重排)。所以理想情况下它会打印如下内容:
AB CD EF,
AB CE DF,
AB CF DE,
AC BD EF,
AC BE DF,
AC BF DE,
AD BC EF,
AD BE CF,
AD BF CE,
AE BC DF,
AE BD CF,
AE BF CD,
AF BC DE,
AF BD CE,
AF BE CD,
我相信这些都是没有重复 2 字母元素的所有组合。
我将如何打印这个?谢谢!
【问题讨论】:
-
你在尝试解决一个练习吗?
-
所以你想保持第一个位置,即
A,固定并排列其余位置?或者BA CD EF也应该有效? -
6 个元素的所有组合(有排列)有什么区别?
-
您使用什么代码来创建 2 项组合列表?
-
我想指出,有
itertools.combinations可以获得每个独特的、不重复的组合。
标签: python arrays combinations