encontrar todos los indices con recursion

Para escribir un progtwig que encuentre todos los números de índices para un elemento específico en list / srting, TENGO QUE usar la recursión, y mi función tiene que obtener solo 2 argumentos.

mi problema es que mi progtwig encuentra solo el primer índice y se detiene, ¿cómo puedo manejarlo?

mi código:

def find_all(L, v): return 0 if L[0] == v else 1 + find_all(L[1:], v) 

entrada: 1. find_all( [1,2,3,4,2,4,5,2,1], 2) 2. find_all("hello wonderful world", "w")

salida: 1. [1,4,7] 2. [6,16]

Puedes usar la habilidad de los pitones para caminar hacia atrás a través de una lista y tomar el último elemento. Luego ponga las listas junto con el operador +. Al pasar por la lista hacia atrás, puede encontrar el índice cuando se encuentra un valor, en lugar de perderlo cuando se mueve desde el principio de la lista hasta el final.

 def find_all(L, v): if not L: return [] result = [] if L[-1] == v: result = [len(L)-1] return find_all(L[:-1], v) + result 

Tienes que hacer un seguimiento de un contador de alguna manera. La idea es usar find_all(L, v) como una interfaz para la función recursiva “real”:

 def find_all(L, v): return _find_all(L, v, 0) def _find_all(L, v, position): # Your algorithm here 

Teniendo en cuenta que esto es tarea, no haré el trabajo por ti, pero deberías poder continuar desde aquí.