任意字典组合找出 满足并接近固定值的组合

result = {'a': 30, 'b': 88, 'c': 100, 'd': 90,"e":60}
key = 180
result 中任意字典组合找出 满足并接近key的组合

麻烦各位了


import itertools
def sums():
    li = []
    li_group = []
    li_dic = {}
    result = {'a': 30, 'b': 88, 'c': 100, 'd': 90, "e": 60}
    key = 180
    for key1 in result.keys():
        li.append(key1)
    for j in range(1,len(li)+1):
        for i in itertools.combinations(li,j):
            li_group.append(list(i))
    for li_value in li_group:
        count = 0
        key_v=''
        for v in li_value:
            key_v += v + '+'
            count = count + result[v]

        li_dic[key_v[:-1]]= abs(count-key)
    li_sort =sorted(li_dic.items(),key=lambda item:item[1])
    print(li_sort)
sums()

替换字典和值就行了