Do exchanges of first letter.
The number of permutations goes up fast: 8 Letters (40,320), 10 (3,628,800), 12 (479,001,600).
The best way to generate them can be done recursively. The general idea is to move the first letter in the string right and left (ABCDEFG, BACDEFG. BCADEFG, BCDAEFG). When first letter gets to one end or the other, advance second letter once before reversing direction of first letter (BCDEFGA, CBDEFGA, CBDEFAG, CBDEAFG). Similarly, when second letter gets to an extreme position, advance third letter.
The advantage of this method, is that the first letter is moved a huge number of times. It is kept in a temporary location and inserted into the string as required. Thus, most of the exchanges are "half-exchanges" instead of "full exchanges."
I created a simple VB application which does the above to illustrate the algorithm for a few bright teenage friends. I can Zip the VB files I used and send them to you if you want.