Проблема тут принципиальная. Нельзя делать такие вещи через рекурсию. Стек очень-очень сильно ограничен, а у тебя тут на первой же реке глубина вызовов будет шестизначная, если не больше. Ищи решение без рекурсии (или руками ограничивай количество рекурсивных вызовов).