This is an unfinished program which will look for the shortest palindrome using all 26 alphabetic characters using only words from a dictionary ("WORD.LST"). The main thing to keep in mind is that there must be 2 a's, 2 b's, 2 c's, etc. because the first half is a mirror of the second half. That can narrow the search space. There can be other tricks: you want to maximize the number of unique characters per word in the hopes that you can find 2 of each character later on. This can cut down on the search space. In this program, as an experiment, I limited the length to 51 characters (the minimum number that would work, anyway -- 2 of every character except 1 in the middle). It still ran too slowly.
If anyone wants to work on it and manages to get it working, tell me.
You can get the C source code here.
Date Last Modified: Thu Feb 15 16:01:22 UTC 2007