将数组拆分为x组后如何获得所有可能的组合

时间:2017-07-19 06:11:01

标签: python numpy scipy combinations permutation

假设我有一个数组arr = ['a', 'b', 'c', 'd', 'e']。我想得到一个列表,列出我可以将它分成x组的所有方法。

例如,如果我这样做: get_all_ways_to_split_array_into_x_groups(arr, 2)应该返回类似的内容:

[
(['a'], ['b', 'c', 'd', 'e']),
(['a', 'b'], ['c', 'd', 'e']),
(['a', 'b', 'c'], ['d', 'e']),
(['a', 'b', 'c', 'd'], ['e']),
(['b'], ['a', 'c', 'd', 'e']),
...
]

组的顺序和每组中元素的顺序无关紧要。我看过numpy / scipy / itertools / etc并且找不到这样的东西,所以我怀疑需要自定义代码,这可能计算成本非常高。有什么建议吗?

编辑:初始数组不大,最多20个元素。

0 个答案:

没有答案