-# def transpositions_of(keyword):
-# """Finds the transpostions given by a keyword. For instance, the keyword
-# 'clever' rearranges to 'celrv', so the first column (0) stays first, the
-# second column (1) moves to third, the third column (2) moves to second,
-# and so on.
-
-# If passed a tuple, assume it's already a transposition and just return it.
-
-# >>> transpositions_of('clever')
-# (0, 2, 1, 4, 3)
-# >>> transpositions_of('fred')
-# (3, 2, 0, 1)
-# >>> transpositions_of((3, 2, 0, 1))
-# (3, 2, 0, 1)
-# """
-# if isinstance(keyword, tuple):
-# return keyword
-# else:
-# key = deduplicate(keyword)
-# transpositions = tuple(key.index(l) for l in sorted(key))
-# return transpositions
-
-
-# transpositions = collections.defaultdict(list)
-# for word in keywords:
-# transpositions[transpositions_of(word)] += [word]
-
-
-# def pad(message_len, group_len, fillvalue):
-# """Return the padding needed to extend a message to a multiple of group_len
-# in length.
-
-# fillvalue can be a function or a literal value. If a function, it is called
-# once for each padded character. Use this will fillvalue=random_english_letter
-# to pad a message with random letters.
-# """
-# padding_length = group_len - message_len % group_len
-# if padding_length == group_len: padding_length = 0
-# padding = ''
-# for i in range(padding_length):
-# if callable(fillvalue):
-# padding += fillvalue()
-# else:
-# padding += fillvalue
-# return padding
-