c
в строке построй список вида [c.upper(), c.lower()]
, если это буква. Если не буква, список должен содержать один элемент.[['a', 'A'], ['.'], ['b', 'B'], ['c', 'C'], ['@'], ['d', 'D']]
itertools.product(*patterns)
и итерируешься по тому, что оно вернёт.