This may be less relevant, but there are a number of other types of things that puzzles could be that you would want to just leave alone. (You could get a tuple, or a generator, or the like). There are a number of different ways to detect general iterability of a value, or you could just check for whether `puzzles` is an `int` or `basestring`, and generate the singleton list for those limited cases.

Whether it's worth doing this level of generality really depends on how public this function is.