Вы могли бы что-то вроде этого:
di = {'a': 1, 'b': 2, 'c': 34, 'd': 24}
dict_len = range(len(di)-2, len(di))
for l in dict_len:
d_values = list(itertools.combinations(di.values(), l))
d_keys = list(itertools.combinations(di.keys(), l))
for d,k in zip(d_values,d_keys):
print(k,sum(d))
, который генерирует вывод:
('a', 'b') 3
('a', 'c') 35
('a', 'd') 25
('b', 'c') 36
('b', 'd') 26
('c', 'd') 58
('a', 'b', 'c') 37
('a', 'b', 'd') 27
('a', 'c', 'd') 59
('b', 'c', 'd') 60