// this program demonstrate the use of permutation import java.io.*; import java.util.*; import Set; class mutate { public static void main(String[] argv) throws IOException { Vector v = new Vector(); Set dict = new Set(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String word; System.out.println(" adding word : "); word = br.readLine(); while (word.compareTo("stop") != 0) { dict.addElement(word); System.out.println(" adding word : "); word = br.readLine(); } // while String letters; System.out.println(" enter a set of letters : "); letters = br.readLine(); permutations(v, dict, "", letters); System.out.println(" all permutations : "); Enumeration enum = v.elements(); while (enum.hasMoreElements()) { word = (String)enum.nextElement(); System.out.println(word); } // while } // main static void permutations(Vector v, Set dict, String p, String letters) { if (letters.length() == 0) { if (dict.contains(p)) v.addElement(p); return; } int i = 0; while (i < letters.length()) { String newPermutation = p + letters.substring(i, i+1); String newLetters = letters.substring(0,i) + letters.substring(i+1); permutations(v,dict,newPermutation,newLetters); i ++; } // while } // permutations } // mutate