Если число 3 задано жёстко, проще всего тройной цикл
для i = [0..n—2)
для j = [i+1..n−1)
для k = [j+1..n)
Если нежёстко, то получаем такое.
Изначально массив инициализирован числами 0, 1, 2. Шагом является вот такая сложная операция.
Добавляем единицу к последнему элементу. Если он больше n−1, то крутим вторую итерацию цикла — добавляем 1 к предпоследнему, если он больше n−2, крутим третью.
Если цикл прошёл весь массив и так и не закончился — перебор окончен. Иначе идём по массиву вперёд и заполняем хвост числами a[i]+1, a[i]+2…