Use all equivalents to search:
for (key, value) in set(aa.items()) & set(bb.items()):
print '%s: %s is present in both aa and bb' % (key, value)
The operator &gives you the intersection of both sets ; you can also write:
set(aa.items()).intersection(set(bb.items()))
Please note that this creates full copies of both dicts, so if they are very large, you may not be the best approach.
The shortcut would only need to verify the keys:
for key in set(aa) & set(bb):
if aa[key] == bb[key]:
print '%s: %s is present in both aa and bb' % (key, value)
Here you only copy the keys of each dict to reduce the amount of memory.
Python 2.7 dict :
for (key, value) in aa.viewitems() & bb.viewitems():
print '%s: %s is present in both aa and bb' % (key, value)
, .