Без заголовка
Есть такое понятие в программировании - getting shit done.
Если есть какая-то задача, для которой красивое решение неочевидно, а очевидное решение некрасивое, то пишется очевидное решение и задача забывается.
Попадись мне такая задача на продакшне, я бы написал рекурсивную функцию и забыл до тех пор, пока система бы не уперлась именно в эту функцию по какому-либо ресурсу.