| 269 | // [ [ 0, 1 ], [ 1, 2 ], [ 2, 3 ] ] |
| 270 | // ] |
| 271 | function writeSequences(length, start, sequence) { |
| 272 | if (start === undefined) { |
| 273 | start = 0; |
| 274 | sequence = []; |
| 275 | } else if (start === length) { |
| 276 | return [sequence]; |
| 277 | } |
| 278 | let sequences = []; |
| 279 | for (let end = length; end > start; end--) { |
| 280 | const subSequence = sequence.concat([[start, end]]); |
| 281 | const subSequences = writeSequences(length, end, subSequence, sequences); |
| 282 | sequences = sequences.concat(subSequences); |
| 283 | } |
| 284 | return sequences; |
| 285 | } |