Python iterator in nested types

Will man in Python einen Iterator für eine Container-Klasse erstellen, deren Elemente wiederum Instanzen der Container-Klasse sind, so kann dieser Iterator einfach so erstellt werden:

class Container:

    def __init__(self):
        self.list = []

    def __iter__(self):
        for element in self.list:
            if isinstance(element, Container):
                for subelement in element:
                    yield subelement
            else:
                yield element

As simple as that!