This supports any length list with any N step:
from itertools import islice
def reorder(L,N):
return [x for n in range(N) for x in islice(L,n,None,N)]
L = list(range(16))
for N in range(1,9):
print(N,reorder(L,N))
L = list('abcdefghijk')
for N in range(1,9):
print(N,reorder(L,N))
Output:
1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
2 [0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15]
3 [0, 3, 6, 9, 12, 15, 1, 4, 7, 10, 13, 2, 5, 8, 11, 14]
4 [0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15]
5 [0, 5, 10, 15, 1, 6, 11, 2, 7, 12, 3, 8, 13, 4, 9, 14]
6 [0, 6, 12, 1, 7, 13, 2, 8, 14, 3, 9, 15, 4, 10, 5, 11]
7 [0, 7, 14, 1, 8, 15, 2, 9, 3, 10, 4, 11, 5, 12, 6, 13]
8 [0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15]
1 ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']
2 ['a', 'c', 'e', 'g', 'i', 'k', 'b', 'd', 'f', 'h', 'j']
3 ['a', 'd', 'g', 'j', 'b', 'e', 'h', 'k', 'c', 'f', 'i']
4 ['a', 'e', 'i', 'b', 'f', 'j', 'c', 'g', 'k', 'd', 'h']
5 ['a', 'f', 'k', 'b', 'g', 'c', 'h', 'd', 'i', 'e', 'j']
6 ['a', 'g', 'b', 'h', 'c', 'i', 'd', 'j', 'e', 'k', 'f']
7 ['a', 'h', 'b', 'i', 'c', 'j', 'd', 'k', 'e', 'f', 'g']
8 ['a', 'i', 'b', 'j', 'c', 'k', 'd', 'e', 'f', 'g', 'h']