In [ ]:
# https://www.snapple.com/real-facts/677
# 677 = R
A FULLGROWN TREE PRODUCES ENOUGH OXYGEN TO SUPPORT A FAMILY OF FOUR
33 311559461461‑‑554677874111312 928677297297 625677874281559498297919
297312874559554511 874658993554297312 928874 919559625625874677928 33
31133987433461993 874311 311874559677.
A BCDDEFGHI JFKK LFGMCNKO
KIGCEP GQREKI JG OCLLGFJ A
BASTDR GB BGCF.

# https://www.snapple.com/real-facts/677
# 693 = O
A MALE CRICKETS EAR IS LOCATED OF THE TIBIA ON ITS LEG.
83 61883748132 8686153868626132816305 1328361 53305 74869386883816132828 693480
816765132 816538695383 693852 53816305 748132829.
A BACD EFGEHDIJ DAF GJ CKEAIDL KM
IND IGOGA KP GIJ CDQ.

# https://www.snapple.com/real-facts/245
# 245 = N
THE FIRST TYPEWRITER WAS CALLED THE LITERARY PIANO.
134349714 80816996840134 1348108827142409616913471496 240584840
327584705705714351 134349714 7051691347149658496810 882169584245620.
ABC DEFGA AHICJFEACF JKG
LKMMCN ABC MEACFKFH IEKOP.

# http://snapplefact.com/?q=366
# 366 = G
The center of some golf balls contain honey.
281916903 724903832281903881 30845 88330179903 36630286845 176555286286883
72430832281555207832 91630832903752.
ABC DCEACF GH IGJC KGLH MNLLI
DGEANOE BGECP.

# http://snapplefact.com/?q=931
# 931 = K
THE NOTHINGNESS OF A BLACK HOLE GENERATES A SOUND IN THE KEY OF B FLAT.
THE EOTHWE?EEMM OF A BLACK HOLE ?EEEVATEM A MOVED WE THE KEY OF B FLAT.
330797813 714634330797417714884714813135135 634980 934 101110934695931
797634110813 884813714813207934330813135 934 135634145714642 417714 330797813
931813536 634980 101 980110934330.
ABC CDABECFCCGG DH I JKILM
BDKC FCCCNIACG I GDNCO EC ABC
MCP DH J HKIA.

# https://www.snapple.com/real-facts/182
# 182 = L
A RAINBOW CAN ONLY BE SEEN IN THE MORNING OR LATE AFTERNOON.
A EAINBO? MAN ONLY BE SEEN IN THE ?OENINT OE LATE A?TEENOON.
384 320384645472524732562 638384472 732472182447 524797 215797797472 645472
493513797 683732320472645472695 732320 182384493797 384947493797320472732732472.
A BACDEFG HAD FDIJ EB KBBD CD
LMB NFBDCDL FB IALB AOLBBDFFD.

# https://www.snapple.com/real-facts/77
# 77 = O
NO PIECE OF PAPER CAN BE FOLDED MORE THAN SEVEN TIMES.
42477 7209595948459 77697 72072572059291 484725424 15659 6977759345859458
5387729159 761547725424 7515953059424 76195953859751.
AB CDEFE BG CHCEI FHA JE GBKLEL
MBIE NOHA PEQEA NDMEP.

# https://www.snapple.com/real-facts/166
# 166 = L
BEFORE MERCURY, BRANDY WAS USED TO FILL THERMOMETERS.
SECORE MERUUR?, SRC?D? PCS USED TO CALL THERMOMETERS.
44759861198964598 571598964169956964752, 447964794606539752 613794141
956141598539 435198 61160166166 435464598964571198571598435598964141.
JAFBCA DACEECO, JCFGHO IFJ
EJAH KB FLMM KNACDBDAKACJ.

# https://www.snapple.com/real-facts/232
# 232 = I
THE BLUE WHALES HEART IS THE SIZE OF A SMALL CAR.
THE BLUE WHALES HEART LS THE SLIE AE A SMALL FAR.
602500426 2115694426 50500798156426486 500426798737602 232486 602500426
486232912426 562724 798 486431798156156 434798737.
ABC DJEC FBGJCH BCGIA JH ABC
HJKC GC G HLGJJ MGI.

# https://www.snapple.com/real-facts/729
# 729 = C
Twins have a very high occurrence of left handedness.
63130634635925 850143897317 143 897317201704 850346177850 5872972969201201317
359729317 58444 770317444631 8501433593793173793593172525.
ABCDE FGHI G HIJK FCLF MNNOJJI
DNI MP QIPA FGDRIRDIEE.

# https://www.snapple.com/real-facts/11
# 11 = R
FLAMINGOS TURN PINK FROM EATING SHRIMP.
FLAMINGOS FERN PINK FROM BAFING SHRIMP.
934193824771682515856420726 47996611515 780682515855 93411420771
788824479682515856 72673011682771780.
IABCDEFGH IJKE LDEM IKGC
NBIDEF HOKDCL.

In [3]:
given = """
33 311‑559‑461‑461‑‑554‑677‑874‑111‑312 928‑677‑297‑297 625‑677‑874‑281‑559‑498‑297‑919
297‑312‑874‑559‑554‑511 874‑658‑993‑554‑297‑312 928‑874 919‑559‑625‑625‑874‑677‑928 33
311‑33‑987‑433‑461‑993 874‑311 311‑874‑559‑677.

83 618‑83‑748‑132 868‑61‑53‑868‑626‑132‑816’305 132‑83‑61 53‑305 748‑693‑868‑83‑816‑132‑828 693‑480
816‑765‑132 816‑53‑869‑53‑83 693‑852 53‑816‑305 748‑132‑829.

134‑349‑714 808‑169‑96‑840‑134 134‑810‑882‑714‑240‑96‑169‑134‑714‑96 240‑584‑840
327‑584‑705‑705‑714‑351 134‑349‑714 “705‑169‑134‑714‑96‑584‑96‑810 882‑169‑584‑245‑620.”

281‑916‑903 724‑903‑832‑281‑903‑881 30‑845 883‑30‑179‑903 366‑30‑286‑845 176‑555‑286‑286‑883
724‑30‑832‑281‑555‑207‑832 916‑30‑832‑903‑752.

330‑797‑813 714‑634‑330‑797‑417‑714‑884‑714‑813‑135‑135 634‑980 934 101‑110‑934‑695‑931
797‑634‑110‑813 884‑813‑714‑813‑207‑934‑330‑813‑135 934 135‑634‑145‑714‑642 417‑714 330‑797‑813
931‑813‑536 634‑980 101 980‑110‑934‑330.

384 320‑384‑645‑472‑524‑732‑562 638‑384‑472 732‑472‑182‑447 524‑797 215‑797‑797‑472 645‑472
493‑513‑797 683‑732‑320‑472‑645‑472‑695 732‑320 182‑384‑493‑797 384‑947‑493‑797‑320‑472‑732‑732‑472.

424‑77 720‑959‑59‑484‑59 77‑697 720‑725‑720‑59‑291 484‑725‑424 156‑59 697‑77‑593‑458‑59‑458
538‑77‑291‑59 761‑547‑725‑424 751‑59‑530‑59‑424 761‑959‑538‑59‑751.

447‑598‑61‑198‑964‑598 571‑598‑964‑169‑956‑964‑752, 447‑964‑794‑606‑539‑752 613‑794‑141
956‑141‑598‑539 435‑198 61‑160‑166‑166 435‑464‑598‑964‑571‑198‑571‑598‑435‑598‑964‑141.

602‑500‑426 21‑156‑94‑426 50‑500‑798‑156‑426’486 500‑426‑798‑737‑602 232‑486 602‑500‑426
486‑232‑912‑426 562‑724 798 486‑431‑798‑156‑156 434‑798‑737.

631‑306‑346‑359‑25 850‑143‑897‑317 143 897‑317‑201‑704 850‑346‑177‑850 58‑729‑729‑69‑201‑201‑317‑
359‑729‑317 58‑444 770‑317‑444‑631 850‑143‑359‑379‑317‑379‑359‑317‑25‑25.

934‑193‑824‑771‑682‑515‑856‑420‑726 479‑966‑11‑515 780‑682‑515‑855 934‑11‑420‑771
788‑824‑479‑682‑515‑856 726‑730‑11‑682‑771‑780.
"""
lines = given.split('\n\n')


11

In [29]:
import re
_DIGITS = re.compile(r'\d+')
_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'

def get_converter():
  state = {'idx': 0}  # HACK.
  m = {}
  def converter(match):
    s = match.group(0)
    if s not in m:
      if state['idx'] >= len(_ALPHABET):
        return s
      m[s] = _ALPHABET[state['idx']]
      state['idx'] += 1
    return m[s]
  return converter

for line in given.split('\n\n'):
  line = line.strip().replace('\n', ' ')
  converted = re.sub(_DIGITS, get_converter(), line)
  print(line, '\t', converted.replace('‑', ''))


33 311‑559‑461‑461‑‑554‑677‑874‑111‑312 928‑677‑297‑297 625‑677‑874‑281‑559‑498‑297‑919 297‑312‑874‑559‑554‑511 874‑658‑993‑554‑297‑312 928‑874 919‑559‑625‑625‑874‑677‑928 33 311‑33‑987‑433‑461‑993 874‑311 311‑874‑559‑677. 	 A BCDDEFGHI JFKK LFGMCNKO KIGCEP GQREKI JG OCLLGFJ A BASTDR GB BGCF.
83 618‑83‑748‑132 868‑61‑53‑868‑626‑132‑816’305 132‑83‑61 53‑305 748‑693‑868‑83‑816‑132‑828 693‑480 816‑765‑132 816‑53‑869‑53‑83 693‑852 53‑816‑305 748‑132‑829. 	 A BACD EFGEHDI’J DAF GJ CKEAIDL KM IND IGOGA KP GIJ CDQ.
134‑349‑714 808‑169‑96‑840‑134 134‑810‑882‑714‑240‑96‑169‑134‑714‑96 240‑584‑840 327‑584‑705‑705‑714‑351 134‑349‑714 “705‑169‑134‑714‑96‑584‑96‑810 882‑169‑584‑245‑620.” 	 ABC DEFGA AHICJFEACF JKG LKMMCN ABC “MEACFKFH IEKOP.”
281‑916‑903 724‑903‑832‑281‑903‑881 30‑845 883‑30‑179‑903 366‑30‑286‑845 176‑555‑286‑286‑883 724‑30‑832‑281‑555‑207‑832 916‑30‑832‑903‑752. 	 ABC DCEACF GH IGJC KGLH MNLLI DGEANOE BGECP.
330‑797‑813 714‑634‑330‑797‑417‑714‑884‑714‑813‑135‑135 634‑980 934 101‑110‑934‑695‑931 797‑634‑110‑813 884‑813‑714‑813‑207‑934‑330‑813‑135 934 135‑634‑145‑714‑642 417‑714 330‑797‑813 931‑813‑536 634‑980 101 980‑110‑934‑330. 	 ABC DEABFDGDCHH EI J KLJMN BELC GCDCOJACH J HEPDQ FD ABC NCR EI K ILJA.
384 320‑384‑645‑472‑524‑732‑562 638‑384‑472 732‑472‑182‑447 524‑797 215‑797‑797‑472 645‑472 493‑513‑797 683‑732‑320‑472‑645‑472‑695 732‑320 182‑384‑493‑797 384‑947‑493‑797‑320‑472‑732‑732‑472. 	 A BACDEFG HAD FDIJ EK LKKD CD MNK OFBDCDP FB IAMK AQMKBDFFD.
424‑77 720‑959‑59‑484‑59 77‑697 720‑725‑720‑59‑291 484‑725‑424 156‑59 697‑77‑593‑458‑59‑458 538‑77‑291‑59 761‑547‑725‑424 751‑59‑530‑59‑424 761‑959‑538‑59‑751. 	 AB CDEFE BG CHCEI FHA JE GBKLEL MBIE NOHA PEQEA NDMEP.
447‑598‑61‑198‑964‑598 571‑598‑964‑169‑956‑964‑752, 447‑964‑794‑606‑539‑752 613‑794‑141 956‑141‑598‑539 435‑198 61‑160‑166‑166 435‑464‑598‑964‑571‑198‑571‑598‑435‑598‑964‑141. 	 ABCDEB FBEGHEI, AEJKLI MJN HNBL OD CPQQ ORBEFDFBOBEN.
602‑500‑426 21‑156‑94‑426 50‑500‑798‑156‑426’486 500‑426‑798‑737‑602 232‑486 602‑500‑426 486‑232‑912‑426 562‑724 798 486‑431‑798‑156‑156 434‑798‑737. 	 ABC DEFC GBHEC’I BCHJA KI ABC IKLC MN H IOHEE PHJ.
631‑306‑346‑359‑25 850‑143‑897‑317 143 897‑317‑201‑704 850‑346‑177‑850 58‑729‑729‑69‑201‑201‑317‑ 359‑729‑317 58‑444 770‑317‑444‑631 850‑143‑359‑379‑317‑379‑359‑317‑25‑25. 	 ABCDE FGHI G HIJK FCLF MNNOJJI DNI MP QIPA FGDRIRDIEE.
934‑193‑824‑771‑682‑515‑856‑420‑726 479‑966‑11‑515 780‑682‑515‑855 934‑11‑420‑771 788‑824‑479‑682‑515‑856 726‑730‑11‑682‑771‑780. 	 ABCDEFGHI JKLF MEFN ALHD OCJEFG IPLEDM.

In [ ]: