Subklassen-Iterator

Kleine Spielerei:

def iterclasses(base):
    """
    Return an iterator over all direct and indirect subclasses
    of the given base class.
    """
    yield base

    subclasses = type(base).__subclasses__(base)

    for klass in subclasses:
        for subclass in iterclasses(klass):
            yield subclass