You can obtain a copy of the program with the following commands: ftp ftp.doe.carleton.ca (usr) anonymous (pwd) ident cd pub/scrabble bin get anagram.tar.Z quit zcat anagram.tar.Z | tar xvf - rm anagram.tar.Z To compile the C file, I suggest using gcc -O2 -o anagram anagram.c Now, the format of a command is anagram letters [numbers] [suggested words] where letters is a string of lower case letters only. The optional [numbers] fields force the program to look for anagrams that contain words of each length. Up to ten word lengths may be specified. This is useful when you have a very large number of letters (e.g., more than 20) that you wish to permute, and you wish for the program to skip over all the anagrams containing only short (three and four letter) words. For example, when you are looking for anagrams of 30 letters, you might include the lengths "8 8 8" to force three of the words to be eight letters long each. The optional [suggested words] fields are taken one at a time, and they consist of lower case letters (a-z) only too; each set of these letters is removed from the original letters, and anagrams of the remaining letters are found. This can be useful when you wish to find anagrams involving particular words or a proper name. Both optional fields can be specified at the same time. If no command line arguments are specified, you are prompted for the arguments; after the program has found all anagrams, it returns you to the prompt. Examples: anagram jamescherry (find all anagrams of "jamescherry") anagram jamescherry 5 (forces at least one of the words to be 5 letters long) anagram jamescherry 6 5 (forces one word to be 6 letters long and the other to be 5 long) anagram jamescherry charm (find all anagrams where "charm" is one of the words) anagram (enters interactive mode; then typing "jamescherry" at the prompt is the same as example 1, above. Likewise "jamescherry 5" at the prompt is the same as example 2.) NOTE: You must supply an English dictionary; I do NOT recommend /usr/dict/words as it is very small! The key problem with /usr/dict/words is that it does not have many plural forms and verb forms. For example, my local copy of /usr/dict/words has "abate" and "abater", but not "abates", "abated", or "abating". As a result, many potential anagrams will not be found if you use /usr/dict/words. I highly recommend using the dictionary that is supplied in the tar file. It's big, but it's good.