I wrote this in very much a LISP style, which, if you're not familiar with it, can be pretty hard to follow. The else section constructs the non-trivial solution to the problem
Look at all the nodes adjacent to where we're starting. Weed out any we've already visited.
Call find_path for each of those nodes and gather up the results
Return the list made by prepending this node onto each of those paths
Caution: Contents may have been coded under pressure.
Comment on Re^5: find all paths of length n in a graph