public static ArrayList<ArrayList<Integer>> permute(int[] num) {
		if (num.length < 1)
			return null;
		ArrayList<Integer> temp = new ArrayList<Integer>();
		boolean[] visited = new boolean[num.length];
		dfs(temp, num, visited);
		return result;
	}