def interval_str_to_int_values(s):
    """
    Converts a string in the format '1-5,10-100:10,1000,1000' to a list ordered numbers:
    [1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 1000].

    a-b will be converted to all numbers between a and b, including a and b and incrementing by 1.
    a-b:n will be converted to all numbers between a and b, including a and b and incrementing by n.
    All values are separated by a comma and single values are included as-is.

    If repeated values are generated, they are included only once.
    """

    int_values = []
    intervals = s.split(',')
    for interval in intervals:
        parts = interval.split('-')
        if len(parts) == 1:
            int_values.append(int(parts[0]))
        else:
            start = int(parts[0])
            end_by = parts[1].split(':')
            end = int(end_by[0])
            if len(end_by) == 1:
                int_values.extend(list(range(start, end + 1)))
            else:
                by = int(end_by[1])
                int_values.extend(list(range(start, end + 1, by)))
    return sorted(set(int_values))