Given a list:

```
import string
a = list(string.ascii_lowercase)

```

What is the Pythonic way to return every *nth* block of *m* elements? Note that this is different from just returning [every *nth* element](https://stackoverflow.com/questions/1403674/pythonic-way-to-return-list-of-every-nth-item-in-a-larger-list).

Desired result of taking every *1st of 3 blocks of 3 elements* (take 3, skip 6, take 3, skip 6...):

```
['a', 'b', 'c', 'j', 'k', 'l', 's', 't', 'u']

```

I can get to this as:

```
import itertools
s1 = a[::9]
s2 = a[1::9]
s3 = a[2::9]    
res = list(itertools.chain.from_iterable(zip(s1,s2, s3)))

```

Is there a cleaner way?