Python: encuentra la cadena más cercana (de una lista) a otra cadena

Digamos que tengo unstring "Hello" y una lista

words = ['hello', 'Hallo', 'hi', 'house', 'key', 'screen', 'hallo','question', 'Hallo', 'format']

¿Cómo puedo encontrar eln words que son los mas cercanos a"Hello" y presente en la listawords ?

En este caso, tendríamos['hello', 'hallo', 'Hallo', 'hi', 'format'...]

Así que la estrategia es ordenar las palabras de la lista de la palabra más cercana a la más alejada.

Pensé en algo como esto

word = 'Hello'
for i, item in enumerate(words):
    if lower(item) > lower(word):
      ...

Pero es muy lento en grandes listas.

ACTUALIZAR difflib Funciona pero es muy lento también. (words list tiene 630000+ palabras dentro (ordenadas y una por línea)). ¡Así que revisar la lista toma de 5 a 7 segundos para cada búsqueda de la palabra más cercana!