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)