编辑代码

from itertools import combinations

# 列表中的数字
numbers = [15.84, 10.03, 12.57, 9.13, 18.41, 14.15, 14.68, 35.3, 11.66, 20.64, 
           18.93, 29.97, 33.2, 29.48, 8.91, 7.86, 14.28, 23.03, 10.21, 8.58, 
           9.5, 11.55, 6.97, 8.27, 10.72, 12.2, 4.4, 44.39, 6.12, 20.96, 
           19.67, 21.98, 10.38, 30.69, 16.45, 33.79]

# 目标和
target = 139.21

# 查找和为目标值的组合的函数
def find_combinations(numbers, target):
    for r in range(1, len(numbers) + 1):
        for combo in combinations(numbers, r):
            if abs(sum(combo) - target) < 1e-2:  # 考虑浮点运算的容差
                return combo
    return None

# 查找组合
result = find_combinations(numbers, target)
print(result)