Profundidad del primer recorrido en BeautifulSoup Parse Tree

¿Hay alguna manera de hacer un DFT en un árbol de análisis BeautifulSoup? Estoy tratando de hacer algo como comenzar en la raíz, por lo general, obtener todos los elementos secundarios y luego para cada elemento secundario obtener sus elementos secundarios, etc. hasta que llegue a un nodo terminal, en cuyo punto construiré mi camino de regreso al árbol . El problema es que parece que no puedo encontrar un método que me permita hacer esto. Encontré el método findChildren, pero eso parece poner toda la página en una lista varias veces con cada entrada posterior que se reduce. Es posible que pueda usar esto para hacer un recorrido, sin embargo, aparte de la última entrada en la lista, no parece que haya alguna forma de identificar entradas como nodos terminales o no. ¿Algunas ideas?