lst1 = TakeList[Range @ 21, Range @ 6] > {{1}, {2, 3}, {4, 5, 6}, {7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20, 21}} lst2 = Table[#[[i]] & /@ lst1[[i ;;]], {i, 6}] > {{1, 2, 4, 7, 11, 16}, {3, 5, 8, 12, 17}, {6, 9, 13, 18}, {10, 14, 19}, {15, 20}, {21}} lst3 = Table[#[[-i]] & /@ lst1[[i ;;]], {i, 6}] > {{1, 3, 6, 10, 15, 21}, {2, 5, 9, 14, 20}, {4, 8, 13, 19}, {7, 12, 18}, {11, 17}, {16}}