Как вернуть одно значение и выйти из рекурсии

Я должен переписать код рекурсивно, но рекурсия у меня на уровне easy-задач на литкоде.
Есть код:

def main():
    for i in range(1, n):
        recursion(i)

def recursion(i):
    for ...:
        if ...:
            return False
        elif ...:
            recursion(i)

Как сделать так, чтобы этот return False остановил цикл for в функции main(), то есть в целом прекратил выполняться (и рекурсия прекратилась), а если этого return False не произошло за весь цикл, то после завершения цикла сделать return True

Я пробовал писать print("NO"); return, но он мне 3 "NO" печатает и понятно почему, с флагами пытался делать, но безуспешно, 100% есть проще

UPD Циклом это должно выглядеть так:

def main():
    recursion()

def recursion():
    for i in range(1, n):
        value[i] = ...
        if ...:
            return False
        elif:
           ...
    return True

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

Автор решения: n1tr0xs

Если я все верно понял:

  1. Вы неверно преобразовали цикл в рекурсию
  2. Думаю так ваша проблема решиться
def main():
    if recursion(1):
        print('Not False')
    else:
        print('False')

def recursion(i):
    for ...:
        if ...:
            return False
        elif ...:
            return recursion(i+1) # <---
        return True
→ Ссылка
Автор решения: Stanislav Volodarskiy

Полной уверености нет, но для раннего прерывания рекурсии и цикла нужно возвращать из recursion флажок "продолжай", который проверяет вызывающая сторона:

def main():
    for i in range(1, n):
        if not recursion(i):
            break

def recursion(i):
    for ...:
        if ...:
            return False
        elif ...:
            if not recursion(i):
                return False
    return True
→ Ссылка