¿Cuál es la forma pitónica de encontrar el prefijo común más largo de una lista de listas?

Dado: una lista de listas, como[[3,2,1], [3,2,1,4,5], [3,2,1,8,9], [3,2,1,5,7,8,9]]

Que hacer: Encuentra el prefijo común más largo de todos los sublistas.

Existe: En otro hilo "Elementos comunes entre dos listas que no usan conjuntos en Python", se sugiere usar" Contador ", que está disponible sobre python 2.7. Sin embargo, nuestro proyecto actual se escribió en Python 2.6, por lo que no se usa" Contador ".

Actualmente lo codifico así:

l = [[3,2,1], [3,2,1,4,5], [3,2,1,8,9], [3,2,1,5,7,8,9]]
newl = l[0]
if len(l)>1:
    for li in l[1:]:
    newl = [x for x in newl if x in li]

Pero me parece que no es muy pitónico, ¿hay una mejor manera de codificar?

¡Gracias!

Nueva edición: Lamento mencionar: en mi caso, los elementos compartidos de las listas en 'l' tienen el mismo orden y siempre comienzan desde el artículo 0. Para que no tengas casos como[[1,2,5,6],[2,1,7]]

Respuestas a la pregunta(6)

Su respuesta a la pregunta