Encuentra índices de secuencia en lista en python

Soy bastante nuevo y espero que no sea demasiado obvio, pero parece que no puedo encontrar una respuesta breve y precisa al siguiente problema.

Tengo dos listas:

a = [2,3,5,2,5,6,7,2] b = [2,5,6] 

Me gustaría encontrar cuando todos los índices de la segunda lista ( b ) estén en la primera lista ( a ), de modo que obtenga algo como esto:

índices de b en a: 3, 4, 5 o b = a[3:6]

Con una lista de comprensión:

 >>> [(i, i+len(b)) for i in range(len(a)) if a[i:i+len(b)] == b] [(3, 6)] 

O con un bucle for:

 >>> indexes = [] >>> for i in range(len(a)): ... if a[i:i+len(b)] == b: ... indexes.append((i, i+len(b))) ... >>> indexes [(3, 6)] 

Esto debería hacer lo que estás pidiendo:

 a = [2,3,5,2,5,6,7,2] b = [2,5,6] for i in range(len(a)): if a[i] in b: print i 

Por supuesto, debe formatear la statement impresa a su gusto. O no imprima y guarde el resultado en, digamos, otra lista.

¡Buena suerte!