private void subsets(int[] S, int index) {
		if (index == S.length) {
			ArrayList<Integer> newList = new ArrayList<Integer>(list);
			if (!result.contains(newList)) {
				result.add(newList);
			}
			return;
		}
		list.add(S[index]);
		subsets(S, index + 1);
		list.remove(list.size() - 1);
		subsets(S, index + 1);

	}