Should we bound this recursion with a constant so that we never blow the stack? How much recursion would you think is reasonable? Passing in a counter as a param representing the recursion level and incrementing it by one works well.

Alternatively we could write this in a tail-recursive manner.