¿Por qué es un MRO ambiguo?

class First(object):
    def __init__(self):
        print "first"

class Second(First):
    def __init__(self):
        print "second"

class Third(First, Second):
    def __init__(self):
        print "third"

Fuente

¿Por qué Python no puede crear un MRO consistente? Me parece que está bastante claro:

Buscar en Primero si el método no existe en TerceroBuscar en segundo si el método no existe en primero

Pero si lo pruebas:

TypeError: Error when calling the metaclass bases
    Cannot create a consistent method resolution
order (MRO) for bases First, Second

Respuestas a la pregunta(1)

Su respuesta a la pregunta