Recursión: primer índice de repetición

Crea una función recursiva que identifique el primer elemento que se haya repetido en el argumento de cadena proporcionado. Devuelve el elemento identificado con el índice donde apareció por primera vez y el índice siguiente donde volvió a aparecer, todo ello como un objeto; o un objeto vacío si el argumento proporcionado es None, una cadena vacía o no existe ningún elemento repetido.

Ejemplos

recur_index("KDXTDATTDD") ➞ {"D": [1, 4]}
// D first appeared at index 1, resurfaced at index 4
//  though D resurfaced yet again at index 8, it's no longer significant
// T appeared and resurfaced at indices 3 and 6 but D completed the cycle first

recur_index("AKEDCBERSD") ➞ {"E": [2, 6]}

recur_index("DXKETRETXD") ➞ {"E": [3, 6]}

recur_index("ABCKPEPGBC") ➞ {"P": [4, 6]}

recur_index("ABCDEFGHIJ") ➞ {}

recur_index(None) ➞ {}

Notas

  • No habrá excepciones que manejar; todas las entradas son cadenas y objetos similares a cadenas. Solo debes tener especial cuidado con None y la cadena vacía para evitar resultados no deseados.
  • Se espera que quienes realizan el desafío ideen una solución usando el concepto de recursión o el llamado enfoque recursivo.
  • Puedes leer más sobre la recursión (consulta la pestaña Resources) si todavía no estás familiarizado con ella o si no has comprendido completamente el concepto antes de realizar este desafío o necesitas más información.
  • Puedes encontrar aquí una versión no recursiva de este desafío.