Прежде всего, вы сказали I have three variables called a, b and c, each of these can assume a different value defined in a range
.Обратите внимание, что переменные в вашем коде фактически равны трем спискам целых чисел, не трем целым числам.
Наивным алгоритмом для проверки всех возможных комбинаций является 3 вложенных цикла for
.Здесь я предполагаю, что под «лучшим» вы подразумеваете «максимальное значение»:
def all_combinations (list1, list2, list3):
best_f, best_a, best_b, best_c = None, None, None, None
for a in list1:
for b in list2:
for c in list3:
f = a + (b * a) - (c*(a ^ b))
# here you have to define what f being "better" than best_f means:
if not f or f > best_f:
best_f = f
best_a = a
best_b = b
best_c = c
return best_a, best_b, best_c