from typing import List
from typing import Any
from typing import Generator


def split_work(work: List[Any], num_batches: int) -> Generator[List[Any], None, None]:
    """
    Divides a list of work into evenly (as best as possible) sub batches.
    :param work: a list of work
    :param num_batches: the number of sublists to split it into
    :return: a generator that return lists
    """
    return (work[index::num_batches] for index in range(num_batches))