import itertools
def inclusion_and_exclusion_theorem(n):
xs = []
for i in range(0, n):
xs.append(chr(ord('A') + i))
ys = []
for i in range(1, n + 1):
items = itertools.combinations(xs, i)
items = list(list(x) for x in items)
ys.append(items)
sign = True
s = ""
for i0 in ys:
m = []
sign = not sign
for i1 in i0:
m.append("n(" + "∩".join(i1) + ")")
if sign:
s += " - " + " - ".join(m)
else:
s += " + " + " + ".join(m)
if s[0:3] == ' + ':
s = s[3:]
return s;
print(inclusion_and_exclusion_theorem(3))
aW1wb3J0IGl0ZXJ0b29scwpkZWYgaW5jbHVzaW9uX2FuZF9leGNsdXNpb25fdGhlb3JlbShuKToKICAgIHhzID0gW10KICAgIGZvciBpIGluIHJhbmdlKDAsIG4pOgogICAgICAgIHhzLmFwcGVuZChjaHIob3JkKCdBJykgKyBpKSkKICAgIHlzID0gW10KICAgIGZvciBpIGluIHJhbmdlKDEsIG4gKyAxKToKICAgICAgICBpdGVtcyA9IGl0ZXJ0b29scy5jb21iaW5hdGlvbnMoeHMsIGkpCiAgICAgICAgaXRlbXMgPSBsaXN0KGxpc3QoeCkgZm9yIHggaW4gaXRlbXMpCiAgICAgICAgeXMuYXBwZW5kKGl0ZW1zKQogICAgc2lnbiA9IFRydWUKICAgIHMgPSAiIgogICAgZm9yIGkwIGluIHlzOgogICAgICAgIG0gPSBbXQogICAgICAgIHNpZ24gPSBub3Qgc2lnbgogICAgICAgIGZvciBpMSBpbiBpMDoKICAgICAgICAgICAgbS5hcHBlbmQoIm4oIiArICLiiKkiLmpvaW4oaTEpICsgIikiKQogICAgICAgIGlmIHNpZ246CiAgICAgICAgICAgIHMgKz0gIiAtICIgKyAiIC0gIi5qb2luKG0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcyArPSAiICsgIiArICIgKyAiLmpvaW4obSkKICAgIGlmIHNbMDozXSA9PSAnICsgJzoKICAgICAgICBzID0gc1szOl0KICAgIHJldHVybiBzOwpwcmludChpbmNsdXNpb25fYW5kX2V4Y2x1c2lvbl90aGVvcmVtKDMpKQo=