def check_possibility(figures, signs = [], is_100 = False):
for sign in ('', '+', '-', '*', '//'):
new_signs = signs[:]
new_signs.append(sign)
if len(signs) == 5:
numeric_expression = ''
numeric_expression += figures[0]
for i in range(5):
numeric_expression += signs[i]
numeric_expression += figures[i + 1]
result = eval(numeric_expression)
if result == 100:
return numeric_expression
else:
return False
elif is_100 == False:
is_100 = check_possibility(figures, new_signs, is_100)
return is_100
print check_possibility([str(n) for n in range(2, 8)])
ps. ** опасная операция будет очень долго считать если попадутся большие аргументы. python считает в длинной арифметике для целых.