¿Es así como paginas o hay un algoritmo mejor?

Quiero poder tomar una secuencia como:

my_sequence = ['foo', 'bar', 'baz', 'spam', 'eggs', 'cheese', 'yogurt']

Use una función como:

my_paginated_sequence = get_rows(my_sequence, 3)

Llegar:

[['foo', 'bar', 'baz'], ['spam', 'eggs', 'cheese'], ['yogurt']]

Esto es lo que se me ocurrió con solo pensarlo:

def get_rows(sequence, num):
    count = 1
    rows = list()
    cols = list()
    for item in sequence:
        if count == num:
            cols.append(item)
            rows.append(cols)
            cols = list()
            count = 1
        else:
            cols.append(item)
            count += 1
    if count > 0:
        rows.append(cols)
    return rows