si crei una funzine che per ogni nodo ti genera le sue combinazioni allora se fai in modo che questa funzione ti, invie una lista vuota quando non trova le combinazioni allora quella combinazione è una foglia e andra su un else cosi fai continuare il ciclo lasciato in sospeso dalla ricorsione e vai al nodo successivo, in teoria dovestri averne una cosa di questo tipo for root in radice.figli: lista=genera_combinazioni(root.numero) if lista: root.figli+=[lista] richiama funzione ('Funzione(root)') else: non richiami nulla perchè è una foglia, con questo metodo l'unico problema è che la radice va calcolata prima quidni prima di chiamare la funzione calcoli i figli di radice e come è logico che sia la funzione genera_combinazioni deve tornare una lista di indirizzi di memoria quidni creare i nodi