请各位大神帮我看看我写的算法哪里有问题,麻烦各位了

#小明和小李两个人分糖果一共有n个,每份都有质量,现在要求什么时候小明和小李分的糖果一样多但】是小明又能拿到最大质量。(小李只会二进制计算而且计算是这样的规律 1011+1000=0011)最终判断一样是判断小明的计算结果相同。比如糖果有4颗每颗质量分别为3 5 7 9 3=>0011 5=>0101 7=>0111 9=>1001 3+5 = 0011+0101 = 0110 7+9 = 0111+1001 = 1110 如果不存在返回false
以上是题目

list1 = []
def fun1(i):
    if i >= 0:
        print(list1(i) ^ fun1(i - 1))
        return list1(i) ^ fun1(i - 1)
    return 1


n = int(input("请输入:"))
for i in range(n):
    a = int(input("请输入第%d个的质量" % i))
    list1.append(a)
print(len(list1))
b = fun1(len(list1)-1) ^ 1

if b == 0:
    min = min(list1)
    print('小李的质量为%d' % min)
    sum = 0
    for i in list1:
        sum = i + sum
    print("小明的质量为%d" % (sum-min))

else:
    print("False")

https://www.nowcoder.com/discuss/450154