def paths(self, acc=[]):
    if self.is_leaf():
        yield [self.node] + acc
for child in self.children:
    for leaf_path in child.paths([self.node] + acc):
        pass
Python (урожайность): все пути от листьев к корню в дереве