¿Cómo debo encontrar secuencias de palabras repetidas?

Necesito detectar la presencia de múltiples bloques de datos en columnas dado solo sus encabezados. No se sabe nada más sobre los datos, excepto las palabras de encabezado, que son diferentes para cada conjunto de datos.

Es importante destacar que no se sabe de antemano cuántas palabras hay en cada bloque ni, por lo tanto, cuántos bloques hay.

Igualmente importante, la lista de palabras siempre es relativamente corta: menos de 20.

Entonces, dada una lista o conjunto de palabras de encabezado como:

Opt
Object
Type
Opt
Object
Type
Opt
Object
Type

¿Cuál es la forma más eficiente de procesamiento para determinar que consiste completamente en la secuencia de repetición:

Opt
Object
Type

Debe ser una coincidencia exacta, por lo que mi primer pensamiento es buscar [1+] buscando coincidencias con [0], llamándolos índice n, m, ... Entonces, si son equidistantes, marque [1] == [n + 1] == [m + 1] y [2] == [n + 2] == [m + 2] etc.

EDITAR: debe funcionar para conjuntos de palabras donde algunas de las palabras se repiten dentro de un bloque, por lo que

Opt
Opt
Object
Opt
Opt
Object

es un conjunto de 2

Opt
Opt
Object

Respuestas a la pregunta(4)

Su respuesta a la pregunta