Por que a ordem de dict e dict.items () é diferente?

>>> d = {'A':1, 'b':2, 'c':3, 'D':4}

>>> d
{'A': 1, 'D': 4, 'b': 2, 'c': 3}

>>> d.items()
[('A', 1), ('c', 3), ('b', 2), ('D', 4)]

O pedido é randomizado duas vezes quando eu chamo d.items ()? Ou é apenas aleatoriamente diferenciado? Existe alguma maneira alternativa de fazer com que d.items () retorne a mesma ordem que d?

Edit: Parece ser uma coisa IPython onde ele classifica automaticamente o ditado. Normalmente dict e dict.items () devem estar na mesma ordem.