Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static ArrayList<String> possibilities = new ArrayList<>();
- public static void main(String[] args) {
- String s = "abcd";
- loop(s, null);
- for(String string : possibilities)
- System.out.println(string);
- }
- private static void loop(String charSet, String potential) {
- for(int i = 0; i < charSet.length(); i++) {
- StringBuilder builder = new StringBuilder();
- if(potential != null)
- builder.append(potential);
- builder.append(charSet.charAt(i));
- String newPotential = builder.toString();
- String remaining = getRemainingChars(charSet, newPotential);
- if(remaining.length() > 0)
- loop(remaining, newPotential);
- if(charSet.length() == 1)
- possibilities.add(newPotential);
- }
- }
- private static String getRemainingChars(String charSet, String usedChars) {
- StringBuilder remainingBuilder = new StringBuilder();
- for(char c : charSet.toCharArray()) {
- if(usedChars.indexOf(c) == -1) {
- remainingBuilder.append(c);
- }
- }
- return remainingBuilder.toString();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement