def Muller(mev, dis): x2 = [] while 1: x = random.uniform(-1, 1) y = random.uniform(-1, 1) s = x**2 + y**2 if 0 < s and s <= 1: z0 = x * math.sqrt(-2 * math.log(s) / s) z1 = y * math.sqrt(-2 * math.log(s) / s) x2.append(mev + dis * z0) x2.append(mev + dis * z1) if len(x2) == 20: return x2 print Muller(mev, dis)