I'm not sure how we can check that a given candidate produces as many words as possible, given the [no-computers] tag. But, depending on whether you are counting the number of different words or the number of substrings that are words,
ananas
is hard to beat. The only substrings that aren't YAWL words are
the three "n"s.
Oh, except that
in fact YAWL doesn't have one-letter words, so in this word every substring that's long enough to be in YAWL is in YAWL. This is therefore definitely optimal for the substrings-that-are-words question.
But there are a lot of repeated words there and only
9/10 distinct words: (a,) an, ana, anan, anana, ananas, na, nan, nana, nanas.
For distinct words, I have no reason to think this is optimal (other than having tried for a while and not found anything better) but
latest
yields
13: la lat late latest; at ate ates; te tes test; es est; st.
EDITED to add: Now that the [no-computers] tag has been removed, I can report that a very simple-minded Python program finds
ferest
yielding
14: fe fer fere feres ferest; er ere eres; re res rest; es est; st.
I did know
the word "fere" but (1) didn't think of it -- it's pretty obscure -- and (2) didn't know it could be an adjective and (3) likely wouldn't have thought of it anyway because I have no idea why YAWL considers "fe" a word. So hooray for computer searches!
But
actually there are several other 14s, some of which I really should have thought of. STATES, AMUSED, BAREST, CHIDES, SPARED, STARES, PHONED, for instance. 24 in all.
Simple-minded Python code, in case anyone cares:
words = set(w.strip() for w in open("yawl.txt","r").read().split())
m = (0,'',set())
for w in words:
if len(w) != 6: continue
s = set()
for i in range(6):
for j in range(i+1,7):
if w[i:j] in words: s.add(w[i:j])
n = len(s)
if n > m[0]: m = (n,w,s)
print(m)