Si se les dificulta entender lo que hace una función recursiva les recomiendo el Run and Debug de VScode.
Pueden ir viendo que hace el código linea por linea, como cambian las variables, la llamada de la función en la que te encuentras e ir imprimiendo los valores. Es una herramienta muy útil que siempre uso cuando el código es muy confuso, se las recomiendo.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?