from collections import Counter from random import random avg = sim(0.51,3) #dummy vals def sim(p, wins_needed): wins, losses = 0, 0 while True: if random()=wins_needed or losses>=wins_needed: return wins,losses for i in range(1,1000000): vals = sim(0.51,3) avg[0] = (avg[0] * (i-1) + vals[0]) / i avg[1] = (avg[1] * (i-1) + vals[0]) / i print(str(avg))