If you are looking for an alternative to nested Do loops and saving computation then perhaps you might consider this.
This
seq1=Table[ progress = 0; Do[ Do[ progress++, {l\\[LetterSpace]1, 1 +
l\\[LetterSpace]0, \\[CapitalNu]}], {l\\[LetterSpace]0,
Range[\\[CapitalNu]]}];progress,{\\[CapitalNu],0,20}]
returns
{0, 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136,
153, 171, 190}
and this
fun1=FindSequenceFunction[seq1];
Table[fun1[x],{x,1,21}]
returns
{0, 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190}
This
seq2=Table[progress = 0; Do[Do[Do[progress++,{l\\[LetterSpace]2, 1 +
l\\[LetterSpace]1, \\[CapitalNu]}], {l\\[LetterSpace]1, 1 +
l\\[LetterSpace]0, \\[CapitalNu]}], {l\\[LetterSpace]0,
Range[\\[CapitalNu]]}];progress,{\\[CapitalNu],0,20}]
returns
{0, 0, 0, 1, 4, 10, 20, 35, 56, 84, 120, 165, 220, 286, 364, 455, 560, 680, 816, 969, 1140}
and this
fun2=FindSequenceFunction[seq2];
Table[fun2[x],{x,1,21}]
returns
{0, 0, 0, 1, 4, 10, 20, 35, 56, 84, 120, 165, 220, 286, 364, 455, 560, 680, 816, 969, 1140}
This
seq3=Table[progress = 0;curr\\[LetterSpace]n\\[LetterSpace]h = 2;
intrnl\\[LetterSpace]DoFoldList :=
Reverse[{ToExpression["l\\[LetterSpace]" <> ToString[#]],
ToExpression["l\\[LetterSpace]" <> ToString[# - 1]] + 1, \\[CapitalNu]}
& /@ Range[1, curr\\[LetterSpace]n\\[LetterSpace]h - 1]];
intrnl\\[LetterSpace]DoFoldList;Do[Fold[Do, Unevaluated[progress++],
intrnl\\[LetterSpace]DoFoldList], {l\\[LetterSpace]0,
Range[\\[CapitalNu]]}];progress,{\\[CapitalNu],0,20}]
returns
{0, 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190}
and this
fun3=FindSequenceFunction[seq3];
Table[fun3[x],{x,1,21}]
returns
{0, 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190}