extrn
Мыслитель
(7179)
5 лет назад
from itertools import combinations
lst = [1, 2, 3]
print({sum(x) for n in range(len(lst)) for x in combinations(lst, n + 1)})
не по порядку и в виде множества (чтобы исключить повторы sum([1, 2]) = sum([3]))
если надо в списке и в порядке возрастания, можно завернуть в sorted.
extrnМыслитель (7179)
5 лет назад
только обратил внимание, что повторы допутимы
тогда так
print([sum(x) for n in range(len(lst)) for x in combinations(lst, n + 1)])
опять же, если нужно в порядке возрастания, тогда
print(sorted(sum(x) for n in range(len(lst)) for x in combinations(lst, n + 1)))