Added the combine function which takes n arrays as arguments and returns an array of arrays containing combinations of elements