def adjacent_powerset(iterable):
    """
    Returns every combination of elements in an iterable where elements remain ordered and adjacent.
    For example, adjacent_powerset('ABCD') returns ['A', 'AB', 'ABC', 'ABCD', 'B', 'BC', 'BCD', 'C', 'CD', 'D']

    Args:
        iterable: an iterable
    Returns:
        a list of element groupings
    """
    return [iterable[a:b] for a in range(len(iterable)) for b in range(a + 1, len(iterable) + 1)]