Many moons ago, I was playing with spelling dictionaries (see What is an index anyway?) and anagrams. After decoding a spelling dictionary for a word data base in the early 1980s, I wrote some word games, like scrabble and anagrams.
APT, PAT, and TAP are 3 words that are anagrams of each other. ARE, EAR and ERA is another set. Coming up with a 3 letter triple anagram isn’t too hard.
Does anyone know of other several letter triple anagrams?
It took about 5 minutes to write and 5 minutes to run the program below to find triple or more anagrams of 9 or more letters. The spelling dictionary used has some interesting words!
Coordinate the Decoration of your Maraschino Harmonicas to get Persistent Prettiness!
Click to download Dictionary.dll (you'll need to REGSVR32 this guy)
Here’re the results:
admonisher harmonised rhamnoside
anachorism harmonicas maraschino
anoestrous outreasons treasonous
antimonies antinomies semination
ascertains incrassate sectarians
banderoles bandoleers endorsable
brutalness subalterns substernal
carotenoid coordinate decoration
centralise interlaces linecaster
chromocyte cytochrome orchectomy
cretinised indiscreet indiscrete iridescent
deforciant fornicated fractioned
discounter introduces rediscount reductions
disculpate duplicates spiculated
encopresis necropsies precession
ethologies theologies theologise
germinates magnetiser steamering
hypocenter hypocentre nephrocyte
metaphysis sympathies sympathise
misaligned misdealing misleading
parentally paternally prenatally
persistent pinsetters prettiness
phytogenic pythogenic typhogenic
polyesters presystole proselytes
positional spoilation spoliation
presentive pretensive vespertine
reinducted uncredited undirected
scrutinies scrutinise sinecurist
activations cavitations vacationist
anisometric creationism romanticise
anthologies anthologise theologians
cinetoplast spinotectal tectospinal tenoplastic
considerate denarcotise desecration
description discerption predictions
eliminators misrelation normalities orientalism
festination infestation sinfonietta
gametogenic gamogenetic geomagnetic
paternoster penetrators transportee
americanists cartesianism sectarianism
iridectomies iridectomise mediocrities
obscurantist substraction subtractions
What modifications are needed to produce this output?
abel able bael bale bela elba labe
ares arse ears eras rase sear sera
aste east eats sate seat seta teas
elat late leat tael tale teal tela
abets baste bates beast beats betas tabes
aimer amire maier maire marie ramie rimae
alger argle elgar glare lager large regal
apers apres asper pares parse pears prase presa rapes reaps spare spear
apter parte pater peart petra prate taper
ardeb bared beard bread breda debar debra
arles earls lares laser rales reals seral
ashed deash hades heads sadhe shade shead
aster rates reast stare tares tears teras
caret carte cater crate creta ecart react recta trace
dater derat rated tarde tared trade tread
deist diets dites edits sited stied tides
ensor norse noser rosen senor seron snore
ergon genro goner goren negro norge regno
ester reest reset steer stere teres terse trees
lapse leaps pales peals pleas salep sepal spale
laves salve selva slave vales valse veals
least salet setal slate stale steal taels tales teals tesla
peris piers pries prise ripes spier spire
alerts alters estral laster salter slater staler talers
aretes easter eaters reseat seater teaser teresa
arrest rarest raster raters sartre starer terras
aspers parses passer repass spares sparse spears
canter carnet centra cretan nectar recant trance
capers carpes casper crapes escarp pacers parsec recaps scrape spacer
carets cartes caster caters crates reacts recast traces
corset cortes coster escort rectos scoter sector
daters derats stader stared sterad trades treads
drapes padres parsed rasped spader spared spread
estrin inerts insert inters niters nitres sinter sterni strine trines
ingres reigns renigs resign sering signer singer
merits mister miters mitres remits smiter timers
nestor noster noters sterno stoner tenors tensor toners
palest palets pastel petals plates pleats septal staple
agister aigrets gaiters seagirt stagier strigae triages
aletris realist retails saltier saltire slatier tailers
anestri nastier resiant retains retinas retsina stainer stearin
aridest astride diaster disrate staider tardies tirades
earings erasing gainers regains reginas searing seringa
esprits persist priests spriest sprites stirpes stripes
alerting altering integral relating tanglier teraglin triangle
angriest astringe ganister gantries granites ingrates rangiest
estrange grantees greatens negaters reagents sergeant tangeres
nStart=SECONDS()
LOCAL ox as dictionary.dict
ox=CREATEOBJECT("dictionary.dict")
*ox.DictNum=2 && Smaller dictionary
*Find all words into a table.
?ox.FindMatches("*")
?ox.Words.Count
CREATE TABLE words (word c(25))
FOR i = 1 TO ox.Words.Count
cWord=ox.Words.Item(i-1)
INSERT INTO words VALUES (cWord)
ENDFOR
?"Now find anagrams"
CREATE CURSOR already (word c(25))
INDEX on word TAG word
SELECT word,LEN(TRIM(word)) as nlen FROM words WHERE LEN(TRIM(word)) > 9 ORDER BY 2 INTO CURSOR word10
SET PRINTER off
SET PRINTER TO t.txt
SET PRINTER on
SCAN
IF !INDEXSEEK(word,.f.,"already")
IF ox.FindAnagram(ALLTRIM(word),0) > 2
?
FOR n = 1 TO ox.Words.Count
cWord=ox.Words.Item(n-1)
INSERT INTO already VALUES (cWord)
??cWord," "
ENDIF
ENDSCAN
SET PRINTER TO
MODIFY FILE t.txt NOWAIT
?"Done in ",SECONDS()-nStart