В Python вы можете индексировать dict с помощью кортежа из двух строк, например,
>>> d = {}
>>> d["foo","bar"] = 10
>>> d
{('foo', 'bar'): 10}
Я не уверен, что означает для вас «принудительное выполнение без неровностей», но вы можете либо использовать defaultdict, чтобы вернуть значение по умолчанию для записей, которые не были явно установлены, либо инициализировать dict с известным значением:
>>> xkeys = "abcdef"
>>> ykeys = "xyz"
>>> d = dict(((x,y), 0) for x in xkeys for y in ykeys)
>>> d
{('b', 'y'): 0, ('a', 'z'): 0, ('b', 'x'): 0, ('e', 'y'): 0, ('a', 'x'): 0, ('f', 'z'): 0, ('a', 'y'): 0, ('f', 'y'): 0, ('d', 'y'): 0, ('f', 'x'): 0, ('d', 'x'): 0, ('e', 'x'): 0, ('e', 'z'): 0, ('c', 'x'): 0, ('d', 'z'): 0, ('c', 'y'): 0, ('c', 'z'): 0, ('b', 'z'): 0}
Если вы хотите, чтобы разрешались только ключи в известном наборе, то я предлагаю подклассифицировать dict, чтобы добавить проверку.