detta così è un po' generica, sai dirci di più sul tipo di operazioni che compie? prova mettere dei "print strategici" alla fine di alcuni cicli, per vedere quale di questi è più lento magari, e correggerlo se puoi.
all'inizio io l'ho risolto con una funzione ricorsiva, ma facendo i test mi dava un errore di "esaurimento di memoria" o qualcosa del genere, per cui risolveva la prima lista con numeri piccoli ma le altre davano questo errore. non so se hai usato le funzioni ricorsive, ma se lo hai fatto in rete tutti lo sconsigliano in python, non so perché ma dicono che in python è meglio fare i cicli. C'è una sorta di controllo che arresta il programma per evitare lo stack overflow, c'è un limite che si può alzare, ma tutti lo sconsigliano. questo solo per dire che se hai usato funzioni ricorsive forse è meglio fare cicli.