def divide_into_chunks(array, chunk_size):
    """Divide a given iterable into pieces of a given size
    
    Args:
        array (list or str or tuple): Subscriptable datatypes (containers)
        chunk_size (int): Size of each piece (except possibly the last one)
        
    Returns:
        list or str or tuple: List of chunks
    """
    return [array[i:i + chunk_size] for i in range(0, len(array), chunk_size)]