Splits a very large list into evenly sized chunks.
    Returns an iterator of lists that are no more than the size passed in.

def chunks(iterable, size):
    """
    Splits a very large list into evenly sized chunks.
    Returns an iterator of lists that are no more than the size passed in.
    """
    it = iter(iterable)
    item = list(islice(it, size))
    while item:
        yield item
        item = list(islice(it, size))