Ich weiß nicht obs geht, aber vielleicht ist es ja ein Gedanklicher anstoß.
...
Das könnte funktionieren, allerdings fehlt noch ein Zurücksetzen von L[depth].value bei depth--.
EDIT: Ansonsten könntest du auch noch versuchen, aus den for-Schleifen Listen (oder in Python Generatoren) zu machen. Je nach Anwendung lässt sich vielleicht was damit anfangen....