it[s_] := s⋃Flatten[Outer[If[0≤#1-#2≤1, (#1+#2+1)/2, 0.]&, s, s]];
it[s_, max_] := s⋃Flatten[Outer[If[0≤#1-#2≤1, Min[(#1+#2+1)/2, max], 0.]&, s, s]]

it@{0}

itn[0]={0.};
itn[n_] := itn[n] = it[itn[n-1]];
itn[0, max_]={0., max};
itn[n_, max_] := itn[n, max] = it[itn[n-1, max], max]

itn[3]

itn[5]

itn[10] // Short

Graphics[Line[{{#,0},{#,1}}]& /@ itn[20, 1.75]]