Como melhorar a pesquisa com os.walk e fnmatch

estou a usaros.walk efnmatch com filtros para pesquisar o disco rígido de um PC para todos os arquivos de imagem. Isso funciona perfeitamente, mas é extremamente lento, pois leva cerca de 9 minutos para procurar imagens de + -70000.

Alguma idéia sobre como otimizar esse código para rodar mais rápido? Alguma outra sugestão?

Eu estou usando python 2.7.2 pelo caminho.

import fnmatch
import os

images = ['*.jpg', '*.jpeg', '*.png', '*.tif', '*.tiff']
matches = []

for root, dirnames, filenames in os.walk("C:\\"):
    for extension in images:
        for filename in fnmatch.filter(filenames, extension):
            matches.append(os.path.join(root, filename))

questionAnswers(3)

yourAnswerToTheQuestion