public void perm(ArrayList<ArrayList<Integer>> resArr,
			ArrayList<Integer> res, int[] num, int[] cnt) {
		int n = num.length;
		int i = 0;
		for (i = 0; i < n; i++) {
			if (cnt[i] > 0)
				break;
		}
		if (i == n) {
			resArr.add((ArrayList<Integer>) res.clone());
			return;
		}
		for (; i < n; i++) {
			if (cnt[i] > 0) { // 扩展的条件
				res.add(num[i]);
				cnt[i]--;
				perm(resArr, res, num, cnt);
				res.remove(res.size() - 1);
				cnt[i]++;
			}
		}
		return;
	}