列出组合的所有组合

时间:2018-12-06 19:46:11

标签: python combinations itertools combinatorics

我正在尝试列出由6人组成的3人一组的所有可能组合。 (A, B, C, D, E, F)

  • 顺序与群组无关
  • 这对的顺序无关紧要

可能的组合:

{(B,D),(C,E),(G,H)}

{(B,C),(D,E),(G,H)}

{(B,E),(C,D),(G,H)}

我只能写作:

from itertools import combinations
x = combinations('ABCDEF', 2)
z = [y for y in x]

我对如何从组合中创建组合一无所知,文档并没有太大帮助。我想我必须从头开始创建算法。

  • 我知道应该列出15种组合

1 个答案:

答案 0 :(得分:0)

您可以将其实现为回溯问题。首先,您需要找到所有排列。之后,您应该对列表进行切片。例如:第一个排列是[A,B,C,D,E,F]。您将像这样[[A,B),(C,D),(E,F)]对其进行切片,第二个排列将为[A,B,C,D,F,E],切片为[(A, B),(C,D),(F,E)]。依此类推。