我希望您能翻译以下内容:
(('A',), ('B',), ('C',), ('D',))
(('A',), ('B',), ('C','D'))
(('A',), ('B','C'), ('D',))
(('A',), ('B','C','D'))
(('A','B'), ('C',), ('D',))
(('A','B'), ('C','D'))
(('A','B','C'), ('D',))
(('A','B','C','D'),)
当调用sub_combinations(('A', 'B', 'C', 'D'))
时
这里是我的尝试,但它没有起作用:
def sub_combinations(segment):
for i in range(1, len(segment)):
for j in sub_combinations(segment[i:]):
yield segment[:i]+j
yield segment
但我认为我正在走上正确的轨道。
此外,我希望有第二个参数名为limit,它可以限制子元组的大小。例如,sub_combinations(('A', 'B', 'C', 'D'), 2)
将给出:
(('A',), ('B',), ('C',), ('D',))
(('A',), ('B',), ('C','D'))
(('A',), ('B','C'), ('D',))
(('A','B'), ('C',), ('D',))
(('A','B'), ('C','D'))
我正在使用Python 3。
itertools
吗?另外,请发布您当前函数的实际输出。 - jonrsharpe