答案里经常出现的help函数算递归解的方法没办法计算两个乘号一个加号的情况 测试可以考虑基础情况(64),无法实现24的情况(1004),一定要有优先级的情况(2 2 10 1),无法递归解的情况(2 2 7 5)

import itertools#注意两个乘法一个加法和需要括号才能凑24点的情况!括号是可以被使用的
while True:
    try:
        nums = list(map(str, input().split()))
        op = ['+', '-', '*', '/']
        flag = False#标志位初始化
        p = list(itertools.permutations(nums))
        #全排列所有数字和符号出现的可能,注意permutations计算列表返回列表,eval计算字符串返回整数
        for q in p:
            for i in op:
                for j in op:
                    for k in op:#区分优先级
                        inter1 = eval(q[0] + i + q[1])
                        inter2 = eval(str(inter1) + j + q[2])
                        inter3 = eval(str(inter2) + k + q[3])
                        if inter3 == 24:
                            flag = True
                        #以下是不能使用括号的情况,没有优先级
                        #if eval(q[0] + i + q[1] + j + q[2] + k + q[3]) == 24:
                         #   flag = True
        if flag:
            print('true')
        else:
            print('false')
    except:
        break