要素2個の時{A,B}
n(A∪B) = n(A) + n(B) - n(A∩B)
要素3個の時{A,B,C}
n(A∪B∪C) = n(A) + n(B) + n(C) - n(A∩B) - n(B∩C) - n(C∩A) + n(A∩B∩C)
要素4個の時{A,B,C,D}
n(A∪B∪C∪D) = n(A) + n(B) + n(C) + n(D) - n(A∩B) - n(B∩C) - n(C∩A) - n(D∩C) - n(D∩B) - n(D∩A) + n(A∩B∩C) + n(A∩B∩D) + n(A∩D∩C) + n(B∩D∩C) - n(A∩B∩D∩C)

これの要素n個の時{A,B,C,D...}の時のプログラムってどう書いたらいいんでしょうか。
2時間近く悩んで頭が破裂したので知恵をお貸しいただきたいです。