function getSequences(root) {
  if(!root) { return [[]]; }
  return weave(root.data, getSequences(root.left), getSequences(root.right));
}
4.9 BST Sequences: A binary search tree was created by traversing through an array from left to right and inserting each element. Given a binary search tree with distinct elements, print all possible arrays that could have led to this tree.


Input:
                   2
                1     3


Output: {2, 1, 3}, {2, 3, 1}


IDEAS

1. use BFS to go level by level
2. compute the multiple permutations on that level and concat with the ones in the previous level

@param root Binary Search Tree