public static Set<String> recurse(String s){
		Set<String> set = new HashSet<>();
		int len = s.length();
		if(len == 0){
			return set;
		}
		
		if(len == 1){
			set.add(s);
			return set;
		}
		for(int x=0; x < len; x++){
			char curr = s.charAt(x);
			String pre = x ==0 ? "": s.substring(0, x);
			String post = s.substring(x + 1);
			Set<String> recurseSet = recurse(pre + post);
			
			for (String r : recurseSet) {
				set.add(curr + r);
			}
		}
		return set;
		
	}