Et bien, je te conseille d'écrire une fonction qui prend la liste en question, l'élément de début de ta sous liste et l'élément de fin et aussi un accumulateur.
Lorsque l'utilisateur appel ta fonction, l'accumulateur doit être à '-1' par exemple (ou alors il y a une fonction auxiliaire qui le fait), puis lorsque l'élément de début de la sous liste est appelé l'appel récursif de la fonction est fait avec l'accumulateur à 0. Ensuite tu boucle jusqu'à l'élément de fin en augmentant l'accumulateur et tu renvoie celui-ci lorsque tu as trouvé l'élément de fin. Par contre, tu n'incrémente l'accumulateur que lorsqu'il est plus grand que -1.
Et en prime, c'est récursif terminal. Sinon, tu peut le faire de la fin vers le début, avec le même genre d'algo que ce que tu fait pour longueur.