O parâmetro para o construtor defaultdict é a função que será chamada para a construção de novos elementos. Então, vamos usar um lambda!
>>> from collections import defaultdict
>>> d = defaultdict(lambda : defaultdict(int))
>>> print d[0]
defaultdict(<type 'int'>, {})
>>> print d[0]["x"]
0
Desde o Python 2.7, há uma solução ainda melhor usando o 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})
Alguns recursos de bônus
>>> c.most_common()[:2]
[('and thank you', 42), ('goodbye', 1)]
Para obter mais informações, consulte PyMOTW - Coleções - tipos de dados Container e documentação do Python - coleções