2 made the answer simpler edited Oct 19 '17 at 17:32 Nasser 63k44 gold badges9393 silver badges217217 bronze badges May bemy original answer was unnecessarily complicated. A Table command is all what is needed k = 4;(*must be <= 2*n-1 where n is length of list below*) list = {x1, x2, x3, x4, x5, x6, x7}; Clear[f] Flatten@Table[f[Sequence @@ list[[1 ;; (2 i - 1)]]], {i, Range[k]}] Original k = 4; (*must be <= 2*n-1 where n is length of list below*) list = {x1, x2, x3, x4, x5, x6, x7}; Clear[f] Flatten@MapIndexed[ {z = First[#2]; f[Sequence @@ list[[1 ;; (2 z - 1)]]]} &, Range[k]] May be k = 4; (*must be <= 2*n-1 where n is length of list below*) list = {x1, x2, x3, x4, x5, x6, x7}; Clear[f] Flatten@MapIndexed[ {z = First[#2]; f[Sequence @@ list[[1 ;; (2 z - 1)]]]} &, Range[k]] my original answer was unnecessarily complicated. A Table command is all what is needed k = 4;(*must be <= 2*n-1 where n is length of list below*) list = {x1, x2, x3, x4, x5, x6, x7}; Clear[f] Flatten@Table[f[Sequence @@ list[[1 ;; (2 i - 1)]]], {i, Range[k]}] Original k = 4; (*must be <= 2*n-1 where n is length of list below*) list = {x1, x2, x3, x4, x5, x6, x7}; Clear[f] Flatten@MapIndexed[ {z = First[#2]; f[Sequence @@ list[[1 ;; (2 z - 1)]]]} &, Range[k]] 1 answered Oct 19 '17 at 15:23 Nasser 63k44 gold badges9393 silver badges217217 bronze badges May be k = 4; (*must be <= 2*n-1 where n is length of list below*) list = {x1, x2, x3, x4, x5, x6, x7}; Clear[f] Flatten@MapIndexed[ {z = First[#2]; f[Sequence @@ list[[1 ;; (2 z - 1)]]]} &, Range[k]] 