可以使用Python内置的itertools库中的combinations函数来生成所有可能的组合,然后再使用sorted函数按照它们的和进行排序。
示例代码如下:
import itertools
def generate_combinations_by_sum(items):
all_combinations = []
for i in range(1, len(items) + 1):
combinations = itertools.combinations(items, i)
all_combinations.extend(combinations)
sorted_combinations = sorted(all_combinations, key=lambda comb: sum(comb))
return sorted_combinations
这个函数可以接受一个列表作为输入,返回按照它们的和排列的所有可能的组合。例如:
items = [1, 2, 3]
combinations = generate_combinations_by_sum(items)
print(combinations)
输出:
[(1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)]