Generates the sequence from the specified starting number by successively
    incrementing the starting number by the specified step value up to but not including the end point.
    See https://docs.mongodb.com/manual/reference/operator/aggregation/range/
    for more details
    :param start: An integer (or valid expression) that specifies the start of the sequence.
    :param end: An integer (or valid expression) that specifies the exclusive upper limit of the sequence.
    :param step: An integer (or valid expression) that specifies the increment value.
    :return: Aggregation operator

def RANGE(start, end, step=None):
    """
    Generates the sequence from the specified starting number by successively
    incrementing the starting number by the specified step value up to but not including the end point.
    See https://docs.mongodb.com/manual/reference/operator/aggregation/range/
    for more details
    :param start: An integer (or valid expression) that specifies the start of the sequence.
    :param end: An integer (or valid expression) that specifies the exclusive upper limit of the sequence.
    :param step: An integer (or valid expression) that specifies the increment value.
    :return: Aggregation operator
    """
    return {'$range': [start, end, step]} if step is not None else {'$range': [start, end]}