从另一个列表创建所有可能的嵌套序列的列表

时间:2014-01-20 22:36:26

标签: python

 List1=[0, 1, 2, 3, 4, 5]

我想生成以下list2,其中包含list1中的四元素嵌套序列。

    [0, 1, 2, 3]
    [0, 1, 2, 4]
    [0, 1, 2, 5]
    [0, 1, 3, 4]
    [0, 1, 3, 5]
    [0, 1, 4, 5]
    [0, 2, 3, 4]
    [0, 2, 3, 5]
    [0, 2, 4, 5]
    [0, 3, 4, 5]
    [1, 2, 3, 4]
    [1, 2, 3, 5]
    [1, 2, 4, 5]
    [1, 3, 4, 5]
    [2, 3, 4, 5]

最终问题将使用包含更多元素的list1和包含多于四个元素的嵌套序列的list2。但是,我相信逻辑是一样的,希望这个例子很清楚。

我基本上是在寻找可能来自给定list1的所有“x-element”渐进式嵌套序列。

我编写了一个循环来生成包含三元素嵌套序列的list2。不幸的是,我的解决方案是丑陋的,我的嵌套序列中的元素越多,它就越丑陋。我的猜测/希望是这是一个简单的Python解决方案的已知数学问题。我的研究让我相信这是一个递归问题,但我很难将它翻译成代码。

1 个答案:

答案 0 :(得分:8)

查找itertools.combinations

基本上,你要找的是:

import itertools
itertools.combinations([0, 1, 2, 3, 4, 5], 4)