El parámetro para el constructor defaultdict es la función que se llamará para construir nuevos elementos. ¡Entonces usemos una lambda!
>>> from collections import defaultdict
>>> d = defaultdict(lambda : defaultdict(int))
>>> print d[0]
defaultdict(<type 'int'>, {})
>>> print d[0]["x"]
0
Desde Python 2.7, hay una solución aún mejor con Counter :
>>> from collections import Counter
>>> c = Counter()
>>> c["goodbye"]+=1
>>> c["and thank you"]=42
>>> c["for the fish"]-=5
>>> c
Counter({'and thank you': 42, 'goodbye': 1, 'for the fish': -5})
Algunas características adicionales
>>> c.most_common()[:2]
[('and thank you', 42), ('goodbye', 1)]
Para obtener más información, consulte PyMOTW - Colecciones - Tipos de datos de contenedor y Documentación de Python - colecciones