Die einfachste Lösung ist:

for i in range(32, 128):
  print "%d -> '%s'"%(i, chr(i))

Dass bei 127 ein “leerer” String ausgegeben wird, ist in Ordnung – auch dieses Zeichen dient als Steuerungszeichen, in diesem Fall als “Delete” (was, wenigstens unter Unix, nochmal ein ganz anderes Thema ist).

Nett ist es, wenn man das zweispaltig ausgibt – dazu gäbe es verschiedene Möglichkeiten, mit unseren Mitteln wird man wohl am besten ein bisschen Mathematik einsetzen:

for i in range(48):
  print "%d -> '%s'\t%d -> '%s'"%(
    32+2*i, chr(32+2*i), 32+2*i+1, chr(32+2*i+1))

Die 48 ergibt sich dabei als die Zahl der Zeilen, die wir ausgeben wollen – bei 128 - 32 = 96 Zeichen und zwei Zeichen pro Zeile sind das eben 48.

Könnt ihr das auf vierspaltige Ausgabe erweitern? Was passiert bei drei Spalten?