Les tours d'Hanoi

Écrire une fonction hanoi permettant de résoudre le problème des tours d’hanoi peu importe le nombre d'entrées dans la fonction.
Cette fonction devra prend en paramètre le nombre de disques, le nom de la tour de départ, le nom la tour d'arrivée et le nom la tour intermédiaire.
Elle devra retoure une liste contenant les déplacements à effectuer (cf exemple ci-dessous).

Rappel

Le problème des tours de hanoi est le suivant, on souhaite déplacer un certain nombre de disque de taille différente et ils sont et doivent restés empilés de telle sorte qu’aucun disque d’une certaine taille n soit placé en dessous d’un disque de taille plus grande en sachant qu’il n’y a que 3 piles.

Exemple

Entrée :3,"A","B","C"

Sortie : [['A','C'],['A','B'],['C','B'],['A','C'],['B','A'],['B','C'],['A','C']]

def hanoi(nb_disks,start, middle, end):