假设我有一个数组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个元素。