import java.util.List;
import java.util.Arrays;
import java.util.ArrayList;
public class Main {
public static void print_words_permutations(List<String> words, List<String> current) {
if (words.isEmpty()) {
System.out.println(String.join(" ", current));
return;
}
for (int i = 0; i < words.size(); i++) {
List<String> remaining = new ArrayList<>(words);
String word = remaining.remove(i);
List<String> next = new ArrayList<>(current);
next.add(word);
print_words_permutations(remaining, next); // Recursive
}
}
public static void main(String[] args) {
List<String> words = Arrays.asList("word-1", "word-2", "word-3");
print_words_permutations(words, new ArrayList<>());
}
}
/*
run:
word-1 word-2 word-3
word-1 word-3 word-2
word-2 word-1 word-3
word-2 word-3 word-1
word-3 word-1 word-2
word-3 word-2 word-1
*/