Skip to content

Instantly share code, notes, and snippets.

View MoritzS's full-sized avatar

Moritz Sichert MoritzS

  • Munich, Germany
View GitHub Profile
@MoritzS
MoritzS / basePablo2.py
Last active October 19, 2015 15:38
basePablo with variable alphabet length
from itertools import islice
import math
def lcm(a, b):
return a * b // math.gcd(a, b)
def iter_pack(iterable, n):
iterable = iter(iterable)
import math
import random
class Generator(object):
def __init__(self, str_len, alphabet, secret, initial_state=None):
self._str_len = str_len
self._alphabet = list(alphabet)
alpha_len = len(self._alphabet)
if alpha_len & (alpha_len - 1) > 0:
from itertools import islice
MAPPING = {}
# 0-25: a-z
for i in range(26):
MAPPING[i] = chr(ord('a') + i)
# 26-51: A-Z
for i in range(26):
MAPPING[26 + i] = chr(ord('A') + i)