Это сводится к простой проблеме перестановок. Что вас волнует, так это та часть текста, которая может измениться; переменные. Остальное можно игнорировать, пока вы не захотите его отобразить.
Таким образом, ваш вопрос можно сформулировать проще: каковы все возможные перестановки одного элемента из набора X
и другого элемента из набора Y
? Это известно как перекрестный продукт , иногда также просто называемый продукт .
Вот возможное решение Python:
import itertools
x = set(['M', 'N'])
y = set(['P', 'Q'])
for items in itertools.product(x, y)
print 'AB{0}DE{1}GH'.format(*items)
Обратите внимание, что в команде print ''.format()
используется обозначение "unpack arguments", описанное здесь .