生成列表中长度为n

时间:2019-11-22 05:05:01

标签: python-3.x algorithm combinations itertools

所以我最近遇到了这个问题,我很困惑让itertools开心地工作。

问题

让我们说我列出了六个元素:

elements = ["A", "B", "C", "D", "E", "F", "G"]

我想用函数生成具有随机大小(1-max_length_of_elements)的列表的所有组合。

def generate_combinations(elements, size_of_combinations = 6):
    import itertools
    combinations = itertools.combinations(elements, size_of_combinations)
    return list(combinations)

发生的事情是我回来了

[
    ('A', 'B', 'C', 'D', 'E', 'F'),
    ('A', 'B', 'C', 'D', 'E', 'G'), 
    ('A', 'B', 'C', 'D', 'F', 'G'), 
    ('A', 'B', 'C', 'E', 'F', 'G'), 
    ('A', 'B', 'D', 'E', 'F', 'G'),
    ('A', 'C', 'D', 'E', 'F', 'G'), 
    ('B', 'C', 'D', 'E', 'F', 'G')

]

对我来说有点奇怪,因为它似乎实际上是在进行组合,但是限制了元素必须按顺序排列。

所以我想知道是否有一种简单的方法可以使itertools组合与生成所有未排序的组合一起使用。

或者也许我可以遵循另一种方法。

0 个答案:

没有答案