import string
text = 'Hello World!'
key = 5
reordered = ''.join([list(string.ascii_lowercase)[i % 26] for i in range(key, 26 + key)])
transposition_map = str.maketrans(string.ascii_letters, reordered + reordered.upper())
print(text.translate(transposition_map))
Alternate to reordered
source: https://docs.python.org/2/library/collections.html
from collections import deque
my_sequence = 'abcdefg'
my_sequence.rotate(-3)