Printing all single result and then combinations of two keys
using combinations
.
from itertools import combinations
for key in mydict:
print "{}: '{}'".format(key, mydict[key])
for x, y in combinations(mydict, 2):
print "{}: '{}'".format(x+y, '-'.join((mydict[x], mydict[y])))
UPDATED
Print all possible combinations.
from itertools import combinations
for n in range(len(mydict)):
for combs in combinations(sorted(mydict), n+1):
print "{}: '{}'".format(sum(combs), '-'.join([mydict[key] for key in combs]))