public void process(String s, Set<String> dict, int pos, int lvl) {
		if (lvl == s.length()) {
			StringBuilder sb = new StringBuilder();
			for (String item : list) {
				sb.append(item);
				sb.append(" ");
			}
			sb.deleteCharAt(sb.length() - 1);
			ret.add(sb.toString());
			return;
		}

		while (lvl < s.length()) {
			String cur = s.substring(pos, lvl + 1);
			if (dict.contains(cur)
					&& (p[lvl + 1] == null || p[lvl + 1] != false)) {
				int size = ret.size();
				list.add(cur);
				process(s, dict, lvl + 1, lvl + 1);
				if (ret.size() == size) {		// 根据结果的长度变化,
												// 判断之后是否可能
					p[lvl + 1] = false;
				}
				list.remove(list.size() - 1);
			}
			lvl++;
		}
	}