built-in function sorted() has a second argument: function object for your comparison operation
Example 4.6 from Section 4.5 - unmodified
Partitioned test code off and added my notes
A generator that uses recursion - quite possibly the most non-trivial code example yet...