Print all 2 letter Scrabble Words The Challenge:
Print every 2 letter word acceptable in Scrabble using as few bytes as possible. I have created a text file list here. See also below. There are 101 words. No word starts with C or V. Creative, even if nonoptimal, solutions are encouraged.
AA
AB
AD
...
ZA

Rules:

The outputted words must be separated somehow.
Case does not matter, but should be consistent.
Trailing spaces and newlines are allowed. No other characters should be outputted.
The program should not take any input. External resources (dictionaries) cannot be used.
No standard loopholes.

Wordlist:
AA AB AD AE AG AH AI AL AM AN AR AS AT AW AX AY 
BA BE BI BO BY 
DE DO 
ED EF EH EL EM EN ER ES ET EX 
FA FE 
GO 
HA HE HI HM HO 
ID IF IN IS IT 
JO 
KA KI 
LA LI LO 
MA ME MI MM MO MU MY 
NA NE NO NU 
OD OE OF OH OI OM ON OP OR OS OW OX OY 
PA PE PI 
QI 
RE 
SH SI SO 
TA TI TO 
UH UM UN UP US UT 
WE WO 
XI XU 
YA YE YO 
ZA
Python 3, 194 188 bytes
s=&quot;BI ODEXIF BAAX ASOHER LOXUMOPAGOR KI US AMY BOITONOSI MMEMINANEHI UPI AYAHOYOWOMUNUHAID PEFARED QIS BEN JOFETAE KAT ABYESHMALI UTI ZADOELAWE &quot;
while s:&quot; &quot;in s[:2]or print(s[:2]);s=s[1:]

Almost definitely not the shortest method, but I thought this would be a good start. Try to pack each pair into paths by overlapping as much as possible (e.g. &quot;ODEX...&quot; = [&quot;OD&quot;, &quot;DE&quot;, &quot;EX&quot;, ...]). Spaces are used to separate paths, and any pairs with a space in it is removed (the trailing space is to prevent a single E from being printed at the end).
I also tried regex golfing this but it was longer.