This code takes in a scrambled input word and gives out the unscrambled list of words.
Eg... Input = time
Output = mite, item, emit etc.
I had posted an unscrambler in java sometime ago. This one is the improvement over the previous one. In the sense, the java unscrambler took an input word, and produced all permutations of the input word, did a binary search of each permutation on the list of available words. The problem was that if the input word is sufficiently large, it would produce an OutOfMemory error, because the permutations would be large.
The improvement is that this one, maintains a dictionary of the the available set words whose key is a word with the letters sorted in ascending order as key and the value is a list of all the words that have the same letters as the key.
Eg... Key = eimt, Value = [time, mite, emit, item].
Attaching the code.
#!/usr/bin/python
# the simple idea behind the method is to sort the word read from the file
# and store it in a hashtable. Now when a scrambled input comes in from the user
# it is sorted and its hash determines the list of words with the same letters.
# this new idea obsoletes the method getValueHash.
def getdicthash():
dicthash={}
dicthash[0]=['a']
inputfile = open('./list.txt', 'r')
#Get the word and compute the hash of the word.
word = "a"
while(word!= ""): #make sure there is no space in the quotes. This almost killed me trying to debug.
word = inputfile.readline()
word = word.strip() # remove the new line char
listword = tolist(word)
backtoword = toword(listword)
hashofword = backtoword.__hash__()
if(dicthash.has_key(hashofword)):
wordlist = dicthash[hashofword]
wordlist.append(word)
else:
dicthash[hashofword] = [word]
inputfile.close()
return dicthash
def compareword(word,scrambledinput):
if(len(word) == len(scrambledinput)):
listword = tolist(word)
listinput = tolist(scrambledinput)
wordreturned = toword(listword)
scrambledinputreturned = toword(listinput)
if(wordreturned.__hash__() == scrambledinputreturned.__hash__()):
return True
else:
return False
else:
return False
def tolist(word):
finallist=[]
for i in word:
finallist.append(i)
finallist.sort()
return finallist
def toword(word):
finalword=''
for i in word:
finalword = finalword+i
return finalword
if __name__=="__main__":
response = 'y'
hashe = getdicthash()
while response == 'y':
input = raw_input("Enter a scrambled word : ")
listinput = tolist(input)
backtoinput = toword(listinput)
try :
matchinglist = hashe[backtoinput.__hash__()]
for words in matchinglist:
print words
except:
print "Word not found"
response = raw_input("Do u want to continue.. enter y or n :")
a
aardvark
abaci
aback
abacus
abaft
abalone
abandon
abandoned
abandonment
abase
abasement
abash
abashed
abashedly
abashment
abate
abatement
abattoir
abbe
abbess
abbey
abbot
abbreviate
abbreviated
abbreviation
abdicate
abdication
abdomen
abdominal
abduct
abduction
abductor
abeam
abed
aberrant
aberration
aberrational
abet
abetter
abettor
abeyance
abhor
abhorrence
abhorrent
abhorrently
abidance
abide
abiding
abidingly
ability
abject
abjection
abjectly
abjectness
abjuration
abjuratory
abjure
abjurer
ablate
ablation
ablative
ablaze
able
able-bodied
abloom
ablution
ablutions
ably
abnegate
abnegation
abnormal
abnormality
abnormally
aboard
abode
abolish
abolition
abolitionism
abolitionist
abominable
abominably
abominate
abomination
aboriginal
aborigine
aborning
abort
abortion
abortionist
abortive
abortively
abound
about
about-face
above
aboveboard
above-mentioned
abracadabra
abrade
abrasion
abrasive
abrasively
abrasiveness
abreast
abridge
abridgement
abridgment
abroad
abrogate
abrogation
abrogator
abrupt
abruptly
abruptness
abs
abscess
abscessed
abscissa
abscissae
abscission
abscond
absconder
absence
absent
absentee
absenteeism
absently
absentminded
absentmindedly
absentmindedness
absinth
absinthe
absolute
absolutely
absoluteness
absolution
absolutism
absolutist
absolve
absorb
absorbed
absorbency
absorbent
absorbing
absorbingly
absorption
absorptive
abstain
abstainer
abstemious
abstemiously
abstemiousness
abstention
abstinence
abstinent
abstract
abstracted
abstractedly
abstractedness
abstraction
abstractly
abstractness
abstruse
abstrusely
abstruseness
absurd
absurdity
absurdly
absurdness
abundance
abundant
abundantly
abuse
abuser
abusive
abusively
abusiveness
abut
abutment
abuzz
abysmal
abysmally
abyss
abyssal
acacia
academe
academia
academic
academically
academician
academics
academy
acanthus
accede
accelerate
acceleration
accelerator
accent
accented
accentual
accentuate
accentuation
accept
acceptability
acceptable
acceptableness
acceptably
acceptance
acceptation
accepted
access
accessibility
accessible
accessibly
accession
accessory
accident
accidental
accidentally
accident-prone
acclaim
acclaimed
acclamation
acclimate
acclimation
acclimatization
acclimatize
acclivity
accolade
accommodate
accommodating
accommodatingly
accommodation
accommodations
accompaniment
accompanist
accompany
accomplice
accomplish
accomplished
accomplishment
accord
accordance
accordant
according
accordingly
accordion
accordionist
accost
account
accountability
accountable
accountancy
accountant
accounting
accounts
accouter
accouterments
accoutre
accoutrements
accredit
accreditation
accredited
accretion
accrual
accrue
acculturate
acculturation
accumulate
accumulation
accumulative
accumulator
accuracy
accurate
accurately
accurateness
accursed
accursedness
accusation
accusative
accusatory
accuse
accused
accuser
accusingly
accustom
accustomed
ace
acerbate
acerbic
acerbically
acerbity
acetaminophen
acetate
acetic
acetone
acetonic
acetylene
ache
achene
achievable
achieve
achievement
achiever
achoo
achromatic
achy
acid
acidic
acidify
acidity
acidly
acidosis
acidulous
acknowledge
acknowledged
acknowledgement
acknowledgment
acme
acne
acolyte
aconite
acorn
acoustic
acoustical
acoustically
acoustics
acquaint
acquaintance
acquaintanceship
acquainted
acquiesce
acquiescence
acquiescent
acquiescently
acquirable
acquire
acquirement
acquisition
acquisitive
acquisitively
acquisitiveness
acquit
acquittal
acre
acreage
acrid
acridity
acridly
acridness
acrimonious
acrimoniously
acrimoniousness
acrimony
acrobat
acrobatic
acrobatically
acrobatics
acronym
acrophobia
acropolis
across
across-the-board
acrostic
acrylic
act
acting
actinium
action
actionable
activate
activation
activator
active
actively
activeness
activism
activist
activity
actor
actress
actual
actuality
actualization
actualize
actually
actuarial
actuary
actuate
actuation
actuator
acuity
acumen
acupressure
acupuncture
acupuncturist
acute
acutely
acuteness
acyclovir
ad
adage
adagio
adamant
adamantly
adapt
adaptability
adaptable
adaptation
adapter
adaptive
adaptor
add
addable
addend
addenda
addendum
adder
addict
addicted
addiction
addictive
addition
additional
additionally
additive
addle
add-on
address
addressee
adduce
adenine
adenoid
adenoidal
adenoids
adept
adeptly
adeptness
adequacy
adequate
adequately
adequateness
adhere
adherence
adherent
adhesion
adhesive
adhesiveness
adieu
adieux
adios
adipose
adjacency
adjacent
adjacently
adjectival
adjectivally
adjective
adjoin
adjoining
adjourn
adjournment
adjudge
adjudicate
adjudication
adjudicative
adjudicator
adjudicatory
adjunct
adjuration
adjure
adjust
adjustable
adjuster
adjustment
adjustor
adjutant
ad-lib
adman
administer
administrate
administration
administrative
administratively
administrator
admirable
admirably
admiral
admiralty
admiration
admire
admirer
admiring
admiringly
admissibility
admissible
admissibly
admission
admissions
admit
admittance
admittedly
admix
admixture
admonish
admonishment
admonition
admonitory
ado
adobe
adolescence
adolescent
adopt
adoptable
adopted
adopter
adoption
adoptive
adorable
adorableness
adorably
adoration
adore
adorer
adoring
adoringly
adorn
adornment
adrenal
adrenalin
adrenaline
adrift
adroit
adroitly
adroitness
adsorb
adsorbent
adsorption
adulate
adulation
adulator
adulatory
adult
adulterant
adulterate
adulteration
adulterer
adulteress
adulterous
adultery
adulthood
adumbrate
adumbration
advance
advanced
advancement
advances
advantage
advantageous
advantageously
advent
adventitious
adventitiously
adventure
adventurer
adventuresome
adventuress
adventurous
adventurously
adventurousness
adverb
adverbial
adverbially
adversarial
adversary
adverse
adversely
adverseness
adversity
advert
advertise
advertisement
advertiser
advertising
advertorial
advice
advisability
advisable
advisably
advise
advised
advisedly
advisement
adviser
advisor
advisory
advocacy
advocate
adz
adze
aegis
aeon
aerate
aeration
aerator
aerial
aerialist
aerially
aerie
aerobatic
aerobatics
aerobic
aerobically
aerobics
aerodynamic
aerodynamically
aerodynamics
aeronautic
aeronautical
aeronautics
aerosol
aerospace
aesthete
aesthetic
aesthetically
aestheticism
aesthetics
afar
affability
affable
affably
affair
affairs
affect
affectation
affected
affectedly
affecting
affectingly
affection
affectionate
affectionately
afferent
affiance
affidavit
affiliate
affiliation
affinity
affirm
affirmation
affirmative
affirmatively
affix
afflatus
afflict
affliction
affluence
affluent
affluently
afford
affordable
afforest
afforestation
affray
affront
afghan
aficionado
afield
afire
aflame
afloat
aflutter
afoot
aforementioned
aforesaid
aforethought
afoul
afraid
afresh
aft
after
afterbirth
afterburner
aftercare
aftereffect
afterglow
afterimage
afterlife
afterlives
aftermarket
aftermath
afternoon
aftershave
aftershock
aftertaste
afterthought
afterward
afterwards
afterword
again
against
agape
agar
agar-agar
agate
agave
age
aged
ageism
ageist
ageless
agelessly
agelessness
agency
agenda
agent
age-old
ageratum
ages
agglomerate
agglomeration
agglutinate
agglutination
aggrandize
aggrandizement
aggravate
aggravated
aggravating
aggravatingly
aggravation
aggregate
aggregation
aggression
aggressive
aggressively
aggressiveness
aggressor
aggrieve
aggrieved
aghast
agile
agilely
agility
aging
agitate
agitated
agitation
agitator
agitprop
agleam
aglitter
aglow
agnostic
agnosticism
ago
agog
agonize
agonized
agonizing
agonizingly
agony
agoraphobia
agoraphobic
agrarian
agrarianism
agree
agreeable
agreeableness
agreeably
agreed
agreement
agribusiness
agricultural
agriculturalist
agriculturally
agriculture
agriculturist
agronomic
agronomist
agronomy
aground
ague
ah
aha
ahead
ahem
ahoy
aid
aide
aide-de-camp
aides-de-camp
aigrette
ail
aileron
ailing
ailment
aim
aimless
aimlessly
aimlessness
ain't
air
airbag
airbase
airborne
airbrush
air-condition
air-conditioned
air-conditioner
air-conditioning
air-cooled
aircraft
airdrop
airfare
airfield
airflow
airfoil
airfreight
airhead
airily
airiness
airing
airless
airlessness
airlift
airline
airliner
airlock
airmail
airman
airplane
airplay
airport
airs
airship
airsick
airsickness
airspace
airstrike
airstrip
airtight
airtime
air-to-air
airwaves
airway
airworthiness
airworthy
airy
aisle
ajar
akimbo
akin
alabaster
alack
alacrity
alarm
alarmed
alarming
alarmingly
alarmist
alas
alb
albacore
albatross
albeit
albinism
albino
album
albumen
albumin
albuminous
alchemist
alchemy
alcohol
alcoholic
alcoholically
alcoholism
alcove
alder
alderman
alderwoman
ale
aleatory
alehouse
alembic
alert
alertly
alertness
alewife
alewives
alfalfa
alfresco
alga
algae
algal
algebra
algebraic
algebraically
algorithm
algorithmic
alias
alibi
alien
alienable
alienate
alienated
alienation
alienist
alight
align
aligner
alignment
alike
aliment
alimentary
alimony
alit
alive
aliveness
aliyah
alkali
alkaline
alkalinity
alkalize
alkaloid
alkyd
all
all-around
allay
all-clear
allegation
allege
alleged
allegedly
allegiance
allegoric
allegorical
allegorically
allegorist
allegory
allegretto
allegro
allele
alleluia
allergen
allergenic
allergic
allergically
allergist
allergy
alleviate
alleviation
alley
alley-oop
alleyway
all-fired
alliance
allied
allies
alligator
all-important
all-inclusive
alliterate
alliteration
alliterative
alliteratively
all-night
all-nighter
allocate
allocation
allot
allotment
Good, but shouldn't this have been posted as a code snippet?
For permutations, you could have used itertools.permutations.
I have done full anagram program with weeks of performance testing about which I did one post to this forum. These both programs look overly complicated. I will publish one word version based on my algorithm shortly as code snipet together with speed comparision to these posted versions.
instead of while(word!= ""):
you could have written while(word):
I have done full anagram program with weeks of performance testing about which I did one post to this forum. These both programs look overly complicated. I will publish one word version based on my algorithm shortly as code snipet together with speed comparision to these posted versions.
This one is slow for the very first input, but should be very fast for the subsequent inputs as it is just a dictionary lookup.
The idea behind this very simple, though the code may look a little complicated. I am quite new to python. This code was like an exercise for me to learn the language better. Therefore I am sure this can be improved to a good extent.
Here simplified part of my code, it is propably worse in looking massive amount of words against same dictionary, but for interactive use fast enough and super simple:
## my solution
def isanaword(k,s):
""" goes through the letters of second word (s) and returns it
if first word (k) contains exactly same letters in same number
"""
if (len(k) != len(s)) : return "" ## different lenghth
for c in s:
i = k.find(c)
if i==-1: return "" ## letter not contained in first one found
k = k[0:i]+k[i+1:]
return s
if __name__=="__main__":
print "To stop: enter empty line"
while True:
i=raw_input('Give word: ')
if i :
print [j.rstrip()
for j in open('list.txt')
if isanaword(i, j.rstrip())
]
else: break
Here is my code with timing added. It appears from my tests that the response is less than 1/10th of second/looked word
rom time import clock
## my solution for one word anagram finder
def isanaword(k,s):
""" goes through the letters of second word (s) and returns it
if first word (k) contains exactly same letters in same number
"""
if (len(k) != len(s)) : return "" ## different lenghth
for c in s:
i = k.find(c)
if i==-1: return "" ## letter not contained in first one found
k = k[0:i]+k[i+1:]
return s
if __name__=="__main__":
print "To stop: enter empty line"
while True:
i=raw_input('Give word: ')
t=clock()
if i :
print [j.rstrip()
for j in open('list.txt')
if isanaword(i, j.rstrip())
]
print '%.3f s' % (clock()-t) ## < 0.1 s
else: break
Here is my code with timing added. It appears from my tests that the response is less than 1/10th of second/looked word
rom time import clock ## my solution for one word anagram finder def isanaword(k,s): """ goes through the letters of second word (s) and returns it if first word (k) contains exactly same letters in same number """ if (len(k) != len(s)) : return "" ## different lenghth for c in s: i = k.find(c) if i==-1: return "" ## letter not contained in first one found k = k[0:i]+k[i+1:] return s if __name__=="__main__": print "To stop: enter empty line" while True: i=raw_input('Give word: ') t=clock() if i : print [j.rstrip() for j in open('list.txt') if isanaword(i, j.rstrip()) ] print '%.3f s' % (clock()-t) ## < 0.1 s else: break
Does this program need to iterate through every word in list.txt for every input?
Yes it does and plenty of enough fast. If you want solution for every word you can prepare it solutions only one time and use it with lookup after that, different from multiword anagrams:
Included is one copy of anawords.txt prepared by the program. It is only necessary file in addition to the program itself. Or you can put 'list.txt' together with program in same directory and the program prepares the files analist.txt and from there anawords.txt.
## my solution for all anagrams
from time import clock
import os,sys
dictionary = 'list.txt'
takeout=' \t\'-+\n\r' ## deleted letters from words
## choosing first argument for translate
if sys.version[:3]>='2.6':
table=None #python 2.6
else:
print 'Old python'
table=''
for i in range(256): t+=chr(i)
def letters(a):
let=''.join(sorted(a))
let = let.translate(table,takeout)
return let
def writeout(inp,out):
words= [w.rstrip() for w in open(inp)]
words=[letters(a)+' '+a for a in words]
words.sort(key=len)
open(out,'w').write('\n'.join(words))
def getanawords(aw='anawords.txt',al='analist.txt'):
if not os.path.isfile(aw) and not os.path.isfile(al): writeout(inp=dictionary,out=al)
anawords=dict()
if not os.path.isfile(aw):
for l,w in [j.split() for j in open(al)]:
if l in anawords: anawords[l].append(w)
else: anawords[l]=[w]
print "Dict prepared in %1.3f s" % (clock()-t)
f=open(aw,'w')
for i in sorted(anawords,key=len):
f.write(i+' '+' '.join(anawords[(i)])+'\n')
print "Dict saved for future"
else:
for i in open(aw):
i=i.rstrip().split()
anawords[i[0]]=i[1:]
print "Saved dict loaded"
return anawords
if __name__=="__main__":
## listing all words
t=clock()
anawords=getanawords()
print "Preparations took %1.3f s" % (clock()-t)
print "To stop: enter empty line"
while True:
i=raw_input('Give word: ')
i=letters(i)
t=clock()
if i :
if i in anawords: print anawords[i]
else: print 'Word is not in vocabulary'
print '%.3f s' % (clock()-t)
else: break
""" Output:
>>
Dict prepared in 0.755 s
Dict saved for future
Preparations took 0.989 s
To stop: enter empty line
Give word: item
['emit', 'item', 'mite', 'time']
0.011 s
Give word: sense
['sense']
0.010 s
Give word: dew
['dew', 'wed', "we'd"]
0.009 s
Give word:
>>>
## second run
>>
Saved dict loaded
Preparations took 0.235 s
To stop: enter empty line
Give word: manhole
['manhole']
0.010 s
Give word: team
['mate', 'meat', 'tame', 'team']
0.010 s
Give word: conputer
Word is not in vocabulary
0.010 s
Give word: cotermup
['computer']
0.010 s
Give word:
>>>
"""
s s
l l
e e
u u
n n 'n'
g g
I I
w w
p p
i i
b b
y y
r r
k k
d d
t t
m m
O O
f f
v v
o o o'
h h
a a
x x
q q
j j
c c
z z
hu uh
ad ad
af fa
ah ah ha
am am ma
al la
an an
ap pa
as as
at at
aw aw
ay ya
ax ax
be be
bi bi
by by
in in
do do
di id
de ed
em em me 'em
en en
eh eh he
ex ex
ew we
er re
fi if
fo of
go go
hs sh
hi hi
ho ho oh
hm h'm
ix xi
ip pi
is is
it it ti
im mi
lo lo
mo om
mu mu um
my my
no no on
nu nu
oy yo
ox ox
ow ow
os so
or or
pu up
su us
ot to
Im I'm
Id I'd
ey ye
dno don nod
dnu dun
fir fir
fit fit
fix fix
fin fin
irs sir
fru fur
fry fry
osy soy
osx sox
ost sot
osw sow
bjo job
nru run urn
aes sea
aer are ear era
aet ate eat eta tea
aew awe
aey aye yea
aex axe
aeg age
ael ale lea
cmu cum
bru bur rub
brr brr
eru rue
erv rev
err err
ery rye
emn men
emu emu
emt met
emw mew
emr rem
gnu gnu gun
guy guy
noy yon
not not ton
now now own won
nor nor
nos son
egp peg
mru rum
amn man
amy may yam
amx max
psy spy
amp amp map
amr arm mar ram
amw maw
psu pus sup
cei ice
ceu cue
ces sec
cer rec
rwy wry
ads sad
adp pad
ady day
eey eye
eet tee
eev eve
ees see
eer ere e'er
eel eel lee
eek eek eke
eeg gee
eef fee
bgi big
bgo bog gob
bgu bug
bil lib
eny yen
hno hon
hnt nth
ovw vow
kuy yuk
boy boy
bop bop
bor bro orb rob
bos sob
bow bow
boo boo
lsy sly
oru our
mmu mum
mmo mom
chi chi
gmy gym
gmu gum mug
imp imp
ims ism
imr rim
imv vim
imx mix
muy yum
elm elm
hss ssh
hsy shy
ahh hah
ahm ham
ahr rah
ahs ash has
ahp hap
aht hat
ahw haw
ppu pup
gip pig
ehw hew
eht the
ehu hue
ehs she he's
ehp hep
ehx hex
ehy hey
eho hoe
ehi hie
een nee e'en
gpy gyp
gpu pug
fgo fog
fgi fig
apz zap
pxy pyx
apy pay yap
apr par rap
aps asp sap spa
app pap
apw paw
apt apt pat tap
ouy you
jot jot
joy joy
lpy ply
dho hod
dhi hid
dhu duh
fot oft
fop fop
for for fro
fox fox
ipr rip
ips pis psi sip
ipp pip
ipz zip
ipx pix
ace ace
acd cad
acn can
acm cam
acl lac
acs sac
acr arc car
acp cap
acw caw
act act cat
acy cay
cpu cup
isx six
ist its sit it's 'tis
bho hob
bhu hub
npu pun
ehr her
ehn hen
ehm hem
alw awl law
aky yak
aks ask ska
akr ark
aku auk
ako oak
cop cop
cot cot
cow cow
coy coy
coo coo
opp pop
ops sop
epy yep
epw pew
ept pet
epr per rep
epp pep
bpu pub
ekn ken
ekl elk
eky key
ghu hug ugh
gho hog
aep ape pea
mpu ump
hhs shh
hhu huh
din din
ass ass
asw saw was
ast sat
asy say
asx sax
puy yup
jps pj's
cgo cog
rtu rut
flu flu
beg beg
bee bee
bey bey bye
bew web
bet bet
esu sue use
dmo mod
dmu mud
iss sis
Iev I've
opt opt pot top
opr pro
opx pox
oot too
oow woo
ooz zoo
box box
tux tux
bmo mob
bmu bum
ggi gig
dey dye
dez zed
der red
dew dew wed we'd
deh he'd
dei die
del led
den den end
deo doe ode
def def fed
kow wok
iks ski
ikr irk
ikt kit
ikn ink kin
ikl ilk
ado ado
afn fan
afo oaf
afg fag
afx fax
afy fay
aft aft fat
afr far
esw sew
est set
esy yes
esx sex
buy buy
eno eon one
enp pen
ent net ten
enw new wen
goo goo
arw raw war
deu due
msu sum
anw awn wan
anp nap pan
anr ran
pry pry
any any nay
efy fey
efz fez
efr ref
efw few
efi fie
efl elf
efn fen
efo foe
bfi fib
bfo fob
gru rug
oww wow
bir rib
bnu bun nub
ivy ivy
aab baa
aah aha
cru cur
cry cry
amt mat tam
cis sic
cip pic
cit tic
ciy icy
evx vex
los sol
inx nix
iny yin
int nit tin
inw win
inp nip pin
ins sin
inn inn
ino ion
aiv via
air air
aim aim
ail ail
eip pie
eir ire
eiv vie
eil lei lie
gju jug
gjo jog
lop lop pol
low low owl
lot lot
lox lox
ffo off
ipt pit tip
ipy yip
aqu qua
bco cob
bcu cub
dry dry
dor rod
dos sod
dop pod
dot dot
dou duo
fnu fun
eew ewe wee
eep pee
orw row
ort rot tor
got got tog
dgi dig
dgo dog god
dgu dug
nsu sun
adw wad
adt tad
adr rad
adz adz
adf fad
adg gad
add add dad
adn and
adl lad
adm dam mad
adh had
adi aid
bsu bus sub
elo ole
ell ell
ely lye
elt let
giw wig
gir rig
gin gin
gij jig
gtu gut tug
nnu nun
hip hip phi
hwy why
all all
alm lam
alx lax
aly lay
ptu put
alp alp lap pal
cdo cod doc
cdu cud
rty try
ahy hay
bde bed deb
bdo bod
bdi bid
bdu bud dub
eit tie
dlo old
hoo oho ooh
how how who
hot hot tho tho'
hor rho
hop hop
atv vat
att tat
atu tau
atx tax
ant ant tan
anv van
ttu tut
blo lob
ddu dud
ddi did
ddo odd
agj jag
agy gay
itz zit
itw wit
itt tit
ago ago
agn nag
agm mag
agl gal lag
agh hag
agg gag
agw wag
agt tag
ags gas sag
agr gar rag
agp gap
ctu cut
btu but tub
etv vet
etw wet
ety yet
eor ore roe o'er
eow owe woe
eot toe
glo log
glu lug
ntu nut tun
iln nil
ilo oil
ill ill
ilm mil
ilt lit 'til
ilp lip
htu hut
hty thy
aov ova
aot oat
aor oar
jtu jut
egr erg
egv veg
egt get
egk keg
ego ego
egm gem
egl gel leg
egg egg
sty sty
awy way yaw
awx wax
oty toy
ott tot
otu out
otw tow two
dil lid
dim dim mid
dik kid
dit it'd
dip dip
dir rid
dis dis
fly fly
iwz wiz
mop mop
mow mow
mot mot tom
moo moo
abc cab
abd bad dab
abg bag gab
abh bah
abj jab
abl alb lab
abn ban nab
abo boa
abr bar bra
abs abs
abt bat tab
aby bay
ewy yew
bin bin nib
bio bio obi
bij jib
biz biz
bit bit
ksy sky
iop poi
ajy jay
ajr jar
ajw jaw
ajm jam
cno con
ejt jet
hmu hum
hmo ohm
his his
hit hit
him him
art art rat tar
ary ray
Ill I'll
owy yow
bbo bob
bbi bib
bbe ebb
bbu bub
ampr ramp
ampt tamp
pssu puss
cein nice
ceim mice
ceil lice
ceir rice
ceip epic
ceiv vice
ceit cite
lotv volt
lotu lout
fruy fury
adet date
adew awed wade
ader dare dear read
adez adze daze
acox coax
adef deaf fade
adeg aged egad
adel dale deal lade lead
adem dame made mead
aden dean
adeh head
adei aide idea
adej jade
anvy navy
ainp pain
lmpu lump plum
efrs serf
epry prey pyre
epru pure
eprt pert
nrsu runs
ottu tout
fimr firm
defu feud
deft deft
defy defy
defn fend
defl fled
hkno honk
hknu hunk
bceu cube
bcek beck
irtw writ
gruu guru
asss sass
nort torn
ahmr harm
ahms hams mash sham
ahmt math
ahmw wham
ehor hero hoer
ehop hope
ehov hove
dilo idol
morw worm
doow wood
doot to-do
door door odor rood
imrt trim
cfio coif foci
imry miry
amsw swam
amst mast
amss mass
ffgu guff
alsy slay
alsw slaw
alst last salt slat
alss lass
aagg gaga
aags saga
aagr agar raga
belo bole lobe
ddeu dude
bell bell
ddey eddy
ddee deed
belw blew
belu blue lube
belt belt
eers seer sere
eerv ever veer
eerw ewer were we're
eery eery
alno loan
alnu ulna
alnw lawn
alnp plan
oprs pros
oprw prow
intw twin
admn damn
admp damp
admr dram
ettx text
chou ouch
aops soap
aopt atop
abbe abbe babe
abbl blab
abbr barb
abby baby
aeft fate feat feta
aefk fake
orst sort
crux crux
emmo memo
aitx taxi
aitw wait
oruy your
cklu luck
cklo lock
eipr pier ripe
eipp pipe
eipw wipe
eipy yipe
mssu muss
ehrs hers
fllu full
borw brow
eejz jeez
eejp jeep
eejr jeer
cosw scow
cost cost
ekty tyke
iort riot trio
cosy cosy
cnsy sync
hntu hunt
chir rich
chip chip
chit chit itch
chik hick
chin chin inch
fkor fork
acop capo
acot coat taco
opty typo
optu pout
aeil ilea
cefh chef
cefl clef
fttu tuft
aert rate tare tear
aeru urea
aerv aver rave
aerw ware wear
aers sear sera
aery year
aerz raze
acdi acid
acdl clad
acdo coda
acde dace
acdr card
acds scad
dity tidy
hmny hymn
ditz ditz
abjm jamb
efor fore
ailr lair liar lira rail
ails sail
ailp pail
ailv vial
ailw wail
ailt alit tail tali
dirt dirt
ailm mail
diov void
aftw waft
ooyy yo-yo
ooyz oozy
fgor frog
fgoy fogy
fgoo goof
enru rune
enrt rent tern
cktu tuck
afor faro
afos sofa
deir dire ride
deis ides side
deip pied
deiv dive
deiw wide
deit diet edit tide
deik dike
dein dine
deil deli idle lied
deim dime idem
dfin find
dhwy why'd
enpt pent
dhlo hold
aawy away
jruy jury
gioy yogi
fflu luff
fmuy fumy
klru lurk
kopy poky
kopr pork
dmru drum
hitw whit with
gitw twig
cent cent
ceno cone once
cdhi chid
anor roan
loss loss
losw slow
lost lost lots slot
losu soul
npsu spun
cmsu scum
acll call
aclm calm clam
acln clan
aclo coal cola
aclp clap
aclt talc
aclw claw
acly clay lacy
abrt brat
abry bray
egos goes
egor ergo goer gore ogre
apsy spay
apss pass
apsw swap wasp
apst past spat taps
lmsu slum
fotu tofu
brru burr
agry gray
agrs rags
elly yell
ells sell
ellw well we'll
ellt tell
agoy yoga
agot goat toga
agos sago
afgl flag
bchu chub
iquz quiz
arvy vary
eovw wove
ahht hath
ahhs hash shah
ipty pity
akms mask
llpu pull
akmo amok
gnow gown
gnot tong
gnos song
gnoo goon no-go
imot omit
betu tube
bety byte
cikw wick
gnru rung
ostu oust
almo loam
almt malt
almu alum maul
almr marl
alms alms slam
inwy winy
actt tact
mpsu sump
eggy yegg
gopr gorp
celw clew
afmr farm
ilps lisp slip
emnu menu
efrt fret
emno omen
oorz orzo
oort root
ggno gong
aggo agog
aggn gang
gkoo gook
ahpt path phat
ahpr harp
fhoo hoof
mnor morn norm
mnow mown
mnoo mono moon
ckmo mock
amtt matt
lllu lull
deps sped
norw worn
ehos hose shoe
ehsw shew
inot into
inov vino
inow wino
inor iron
aejn jean
aejp jape
adhs dash shad
adhr hard
adhn hand
aotu auto
eopx expo
anyz zany
gost togs
abet abet bate beat beta
aber bare bear brae
abes base
aben bane bean
abel able bale
abem beam
abek bake beak
attw watt
djou judo
bdlo bold
glmu glum
anry nary yarn
abeu beau
kmno monk
ikls silk
iklt kilt
iklm milk
ikln kiln link
detu duet
moot moot
mooz zoom
dhtu thud
hlru hurl
enst nest sent
ensw news sewn
aahh ha-ha
elru lure rule
bouy buoy
hilt hilt
hill hill
gill gill
eegn gene
eegl glee
eegk geek
gilt gilt
gilr girl
bstu bust stub
ervy very
aalv lava
hiwz whiz
ekno keno
cdko dock
cdku duck
eknu nuke
aagl alga gala
nptu punt
ansu anus
acip pica
acio ciao
acim mica
bgno bong
bgnu bung
eglu glue
egln glen
eglo loge ogle
eltw welt
eltu lute
iloy oily
ilor roil
ilos oils silo soil
ilov viol
ilot toil
epty ty
By directly double clicking the timing is really different:
Dict prepared in 0.560 s
Dict saved for future
Preparations took 0.716 s
To stop: enter empty line
Give word: item
['emit', 'item', 'mite', 'time']
0.001 s
Give word: date
['date']
0.000 s
Give word: deal
['dale', 'deal', 'lade', 'lead']
0.001 s
Give word: teba
['abet', 'bate', 'beat', 'beta']
0.001 s
Give word: erpa
['pare', 'pear', 'rape', 'reap']
0.001 s
Give word: conputeri
Word is not in vocabulary
0.000 s
Give word: retupmoc
['computer']
0.000 s
Give word:
And second time
Saved dict loaded
Preparations took 0.132 s
To stop: enter empty line
Give word: item
['emit', 'item', 'mite', 'time']
0.001 s
Give word:
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.