Ho finalmente capito il motivo del bug di ieri. A quanto pare il professore utilizza la configurazione g0 per testare la ricorsività (funzione test_recursion_3), però la stessa configurazione (ossia la stessa lista) viene data anche alla funzione test_program2_6. Questo comporta un conflitto, perché il professore non poteva prevedere che lo studente avrebbe modificato la lista data alla funzione gen_tree (oppure non ci ha avvertito di questo fatto).
Io quando ricevo una lista la modifico, quindi quando ricevo la lista g0 nella funzione test_program2_6 mi ritrovo una lista sconosciuta, non più quella originale, perchè era stata già modificata da test_recursion_3.
Ora per risolvere basta farsi una copia della configurazione iniziale dentro la funzione gen_tree, però mi ha fatto perdere due giorni questo bug!