Ошибка в python maximum recursion depth exceeded in comparison

Практикую сейчас рекурсивные алгоритмы и в качестве тренировки пишу рекурсивное решение задания из егэ (19-21) на python. Конечно помимо решения данного задания без питона есть и способы перебора без рекурсии, но как это сделать с рекурсией? Вот задача

Вот еще не дописанный код, который уже выдает maximum recursion depth exceeded in comparison. Я попробовал костыль в виде sys.setrecursionlimit(), но с чуть завышенным лимитом, программа просто отдает концы.

n = 17
win = 223
def f(s,n1):
    if s + (n1 + 1) >= win or s*2 + n1 >= win or s + n1*2 >= win or (s+1) + n1 >= win:
        return "p1"
    elif f(s*2,n1) == "p1" and f(s,n1*2) == "p1":
        return "v1"
    elif f(s*2, n) == "v1" or f(s, n*2) == "v1":
        return "p2"
    else:
        return "undef"
for s in range(1, 150):
    print(s, f(s,n))

Ответы (0 шт):