In [8]:
days = 365.0

In [16]:
print 'Probability of no two people sharing a single birthday in a group of N people:'
prob_no_share = 1.0
for n in range(100):
    prob_no_share *= (days - n) / days
    print 'N = {:3d}: {:7.2%}'.format(n + 1, prob_no_share)


Probability of no two people sharing a single birthday in a group of N people:
N =   1: 100.00%
N =   2:  99.73%
N =   3:  99.18%
N =   4:  98.36%
N =   5:  97.29%
N =   6:  95.95%
N =   7:  94.38%
N =   8:  92.57%
N =   9:  90.54%
N =  10:  88.31%
N =  11:  85.89%
N =  12:  83.30%
N =  13:  80.56%
N =  14:  77.69%
N =  15:  74.71%
N =  16:  71.64%
N =  17:  68.50%
N =  18:  65.31%
N =  19:  62.09%
N =  20:  58.86%
N =  21:  55.63%
N =  22:  52.43%
N =  23:  49.27%
N =  24:  46.17%
N =  25:  43.13%
N =  26:  40.18%
N =  27:  37.31%
N =  28:  34.55%
N =  29:  31.90%
N =  30:  29.37%
N =  31:  26.95%
N =  32:  24.67%
N =  33:  22.50%
N =  34:  20.47%
N =  35:  18.56%
N =  36:  16.78%
N =  37:  15.13%
N =  38:  13.59%
N =  39:  12.18%
N =  40:  10.88%
N =  41:   9.68%
N =  42:   8.60%
N =  43:   7.61%
N =  44:   6.71%
N =  45:   5.90%
N =  46:   5.17%
N =  47:   4.52%
N =  48:   3.94%
N =  49:   3.42%
N =  50:   2.96%
N =  51:   2.56%
N =  52:   2.20%
N =  53:   1.89%
N =  54:   1.61%
N =  55:   1.37%
N =  56:   1.17%
N =  57:   0.99%
N =  58:   0.83%
N =  59:   0.70%
N =  60:   0.59%
N =  61:   0.49%
N =  62:   0.41%
N =  63:   0.34%
N =  64:   0.28%
N =  65:   0.23%
N =  66:   0.19%
N =  67:   0.16%
N =  68:   0.13%
N =  69:   0.10%
N =  70:   0.08%
N =  71:   0.07%
N =  72:   0.05%
N =  73:   0.04%
N =  74:   0.04%
N =  75:   0.03%
N =  76:   0.02%
N =  77:   0.02%
N =  78:   0.01%
N =  79:   0.01%
N =  80:   0.01%
N =  81:   0.01%
N =  82:   0.01%
N =  83:   0.00%
N =  84:   0.00%
N =  85:   0.00%
N =  86:   0.00%
N =  87:   0.00%
N =  88:   0.00%
N =  89:   0.00%
N =  90:   0.00%
N =  91:   0.00%
N =  92:   0.00%
N =  93:   0.00%
N =  94:   0.00%
N =  95:   0.00%
N =  96:   0.00%
N =  97:   0.00%
N =  98:   0.00%
N =  99:   0.00%
N = 100:   0.00%

In [ ]: