Ваш базовый случай - это список длиной 1, с которым легко разобраться.
Список длины 2, в котором вы знаете, что последний 1 элемент уже обработан, справиться с ним немного сложнее.
Список длины N, где вы знаете, что последние N-1 элементы были обработаны, должен быть управляемым.
Итак, вы можете взять список, передать список минус первый элемент на следующий уровень рекурсии, а затем, когда вы вернете обработанный подсписок, обработать этот первый элемент.
@ Стивен Шланскер прав, хотя это не совсем рекурсивная задача.