def makeInterval(low, high, nIntervals):
    """Divide an interval into subintervals logarithmically.

    Parameters
    ----------
    low: integer >= 0
        Start of the interval
    high: integer > low
        End of the interval (inclusive)
    nIntervals: integer > 0
        maximum amount of intervals to create.
        It could be that we need less, because we will skip intervals
        that are less than 1 apart.

    Returns
    -------
    list
        The values between low and high (inclusive) where a new interval starts
    """
    useLow = max((1, low))
    factor = high / useLow
    increase = factor ** (1 / nIntervals)
    points = [low, 1] if low == 0 else [low]
    curPoint = useLow
    for i in range(nIntervals):
        nextPoint = curPoint * increase
        nextInt = int(round(nextPoint))
        if nextInt > high:
            break
        curPoint = nextPoint
        if nextInt == points[-1]:
            continue
        points.append(nextInt)
    return points