def chunks(sequence, chunk_size):
    """ Take any sequence and a chunk size, and return a list of the chunks
        from the given sequence.
        
        >>> chunks('cgtcgtcgtaaa', 3)
        [['c', 'g', 't'], ['c', 'g', 't'], ['c', 'g', 't'], ['a', 'a', 'a']]
        >>> chunks('cgtcgtcgtaaa', 5)
        [['c', 'g', 't', 'c', 'g'], ['t', 'c', 'g', 't', 'a'], ['a', 'a']]
        >>> chunks(range(7), 2)
        [[0, 1], [2, 3], [4, 5], [6]]
        >>> chunks(((1,2), ['a','b','c'], 'xyz'), 1)
        [[(1, 2)], [['a', 'b', 'c']], ['xyz']]
    """

    my_list = []                                        # empty list
    for elem in range(0, len(sequence), chunk_size):    # start at position 0 for len of sequence with stride for chunk_size
        my_list.append(list(sequence[elem:elem + chunk_size]))  # append the list
    return my_list