public static void main(String args[]) {
		List<Integer> lists = new LinkedList<Integer>(); // list store all the
															// left numbers, big
															// at first
		for (int i = 9; i >= 0; i--) {
			lists.add(i);
		}
		System.out.println(lists.get(0));
		int remain = pos;
		// 0 as the upper digits
		for (int i = 0; i < nums; i++) {
			// count the i! if i! is bigger than remaining number
			int curSum = stepCross(nums - i);
			if (curSum >= remain) {
				if (i > 0)
					resultPos[i - 1] = lists.remove(lists.size() - 1);
			} else {
				if (i > 0) {
					resultPos[i - 1] = lists.remove(lists.size() - remain
							/ curSum - (remain % curSum == 0 ? 0 : 1));
					remain = remain % curSum;
					if (remain == 0) {
						setBigest(lists, i);
						break;
					}
				} else {
					System.out.println("error: exceed");
					break;
				}
			}
			if (curSum == remain) {
				setBigest(lists, i);
				break;
			}
		}
		for (int i = 0; i < resultPos.length; i++) {
			System.out.print(resultPos[i]);
		}
	}