In [7]:
questions = """
Woven foot covering (4) Ethiopian horsefly (4) month named after Caesar (4) Arabian/African evergreen shrub (3) bewitch (3) secret society from A Series of Unfortunate Events (3, abbr.) move through water (4) step of a ladder (4) coated with gold or silver, perhaps (6)
Fitness program from Colombia (5) container for the Eucharist (3) standardized measure of cognitive prowess (2, abbr.) raise, as a plant (4) uncultivated rural African landscape (5, var.) propel oneself into the air (4) small notch (4) not stale, as produce (5)
Automaker headquartered in Dearborn, Michigan (4) large tub (3) Greek letter used to denote the chromatic number (3) Generation I Ice/Psychic Pokémon (4) precious stone (3) appropriate in the place of employment (3, abbr.) darkest color (5) short academic assessment (4) common lossless image format (3, abbr.)
Ancient prophet from The Hitchhiker’s Guide to the Galaxy universe (7) German automaker (3, abbr.) male donkeys (5) brought trouble or distress to (4, var.) depressing, as a situation (4) common highest academic degree (3, abbr.) travel through the air (3)
Tool for washing floors (3) moving air (4) arcade game character known for nonsensical “swearing” (1*4) moves in the second direction in a path of sharp turns (4) famous fossil named after a Beatles song (4) 1015 according to a Roman (3) enclosed by (2) the third derivative of displacement (4) fifty percent (4)
Bram Moolenaar’s modal text editor (3) fish commonly paired with chips (3) once per second (5) plot or scheme (4) belonging to me (2) vulpine animal (3) German international broadcaster (2, abbr.) earnestly requests (4) matrix barcode (2, abbr.) trash (4)
Electronically transmit copy (3) rapid (5) not wet (3) the object of introspection (4) first day of the workweek, for short (3, abbr.) poke, as with a needle (3) common compressed file format (3) ironic or twisted (3) American cable channel with emphasis on home improvement (4, abbr.)
Like some plant secretions (4) basketball legend (2, abbr.) part of speech expressing action (4) small body of water (4) makes duck-like sound (6) encouragement before the start of an online game (4, abbr.) adult males (3) scatterbrained person (4)
""".strip()

for i, line in enumerate(questions.split('\n'), start=1):
  clues = line.split(')')
  clues.pop()
  for clue in clues:
    print('%d\t%s)' % (i, clue.strip()))


1	Woven foot covering (4)
1	Ethiopian horsefly (4)
1	month named after Caesar (4)
1	Arabian/African evergreen shrub (3)
1	bewitch (3)
1	secret society from A Series of Unfortunate Events (3, abbr.)
1	move through water (4)
1	step of a ladder (4)
1	coated with gold or silver, perhaps (6)
2	Fitness program from Colombia (5)
2	container for the Eucharist (3)
2	standardized measure of cognitive prowess (2, abbr.)
2	raise, as a plant (4)
2	uncultivated rural African landscape (5, var.)
2	propel oneself into the air (4)
2	small notch (4)
2	not stale, as produce (5)
3	Automaker headquartered in Dearborn, Michigan (4)
3	large tub (3)
3	Greek letter used to denote the chromatic number (3)
3	Generation I Ice/Psychic Pokémon (4)
3	precious stone (3)
3	appropriate in the place of employment (3, abbr.)
3	darkest color (5)
3	short academic assessment (4)
3	common lossless image format (3, abbr.)
4	Ancient prophet from The Hitchhiker’s Guide to the Galaxy universe (7)
4	German automaker (3, abbr.)
4	male donkeys (5)
4	brought trouble or distress to (4, var.)
4	depressing, as a situation (4)
4	common highest academic degree (3, abbr.)
4	travel through the air (3)
5	Tool for washing floors (3)
5	moving air (4)
5	arcade game character known for nonsensical “swearing” (1*4)
5	moves in the second direction in a path of sharp turns (4)
5	famous fossil named after a Beatles song (4)
5	1015 according to a Roman (3)
5	enclosed by (2)
5	the third derivative of displacement (4)
5	fifty percent (4)
6	Bram Moolenaar’s modal text editor (3)
6	fish commonly paired with chips (3)
6	once per second (5)
6	plot or scheme (4)
6	belonging to me (2)
6	vulpine animal (3)
6	German international broadcaster (2, abbr.)
6	earnestly requests (4)
6	matrix barcode (2, abbr.)
6	trash (4)
7	Electronically transmit copy (3)
7	rapid (5)
7	not wet (3)
7	the object of introspection (4)
7	first day of the workweek, for short (3, abbr.)
7	poke, as with a needle (3)
7	common compressed file format (3)
7	ironic or twisted (3)
7	American cable channel with emphasis on home improvement (4, abbr.)
8	Like some plant secretions (4)
8	basketball legend (2, abbr.)
8	part of speech expressing action (4)
8	small body of water (4)
8	makes duck-like sound (6)
8	encouragement before the start of an online game (4, abbr.)
8	adult males (3)
8	scatterbrained person (4)

In [86]:
import collections
answers = []
# 1
answers.append("""
SOCK
ZIMB
JULY
QAT
HEX
VFD
SWIM
RUNG
PLATED
""")
# 2
answers.append("""
ZUMBA
PXY
IQ
GROW
VELDT
JUMP
NICK
FRESH
""")
# 3
answers.append("""
FORD
VAT
CHI
JYNX
GEM
SFW
BLACK
QUIZ
PNG
""")
# 4
answers.append("""
ZARQUON
BMW
JACKS
VEXT
GRIM
PHD
FLY
""")
# 5
answers.append("""
MOP
WIND
QBERT
ZAGS
LUCY
MXV
IN
JERK
HALF
""")
# 6
answers.append("""
VIM
COD
HERTZ
PLAN
MY
FOX
DW
BEGS
QR
JUNK
""")
# 7
answers.append("""
FAX
QUICK
DRY
SELF
MON
JAB
ZIP
WRY
HGTV""")
# 8
answers.append("""
WAXY
MJ
VERB
POND
QUACKS
GLHF
MEN
DITZ
""")
answers.append("""
MOCK
JUDGE
VS
LIMB
QUARTZ
NEW
SYLPH
FIX
""")

ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for num, answer in enumerate(answers, start=1):
  answer = answer.strip().replace('?', '').replace('\n', '')
  counts = collections.Counter(answer)
  counts.subtract(ALPHABET)
  dupes = []
  missing = []
  for c, i in counts.items():
    if i > 0:
      dupes.append(c * i)
    elif i < 0:
      missing.append(c)
  print('%s\t%s\t%s' % (num, ''.join(sorted(dupes)), ''.join(sorted(missing))))


1	ADEILMSTU	
2	EIMPRU	
3	ACFGIN	
4	AMR	
5	AEILMNR	
6	DEMNOR	
7	AFIRY	
8	ADEMN	
9	EILMSU	

In [ ]: