The recursive solution is prettier, but it's not doing any less work and it ties up more memory unless your language supports tail recursion (python doesn't)
I try to avoid recursive solutions for problems like these unless the solution specifically needs back tracking.
While this is a perfectly valid solution to the problem, this is a problem where recursion really shines and removes the need for a loop.
The recursive solution is prettier, but it's not doing any less work and it ties up more memory unless your language supports tail recursion (python doesn't)
I try to avoid recursive solutions for problems like these unless the solution specifically needs back tracking.
Never heard of tail recursion before. I'll look it up, thanks.