Вот тут придумал способ перебора массива рекурсией и без if...

не нашел его в документации, __or__(self, other)Но можно определить метод __bool__
class RecursivePrinter:
def __init__(self, data):
self.data = data
def __bool__(self):
return bool(self.data)
def print_elements(self, i):
(i < 0) or (self.print_elements(i - 1) or print(i, self.data[i]))
a = [1, 2, 3, 4, 5, 6, 7, 8]
printer = RecursivePrinter(a)
printer.print_elements(len(a) - 1)