Interseção de todas as combinações possíveis de elementos da lista

Eu tenho uma lista de vetores:

> l <- list(A=c("one", "two", "three", "four"), B=c("one", "two"), C=c("two", "four", "five", "six"), D=c("six", "seven"))

> l
$A
[1] "one"   "two"   "three" "four"

$B
[1] "one" "two"

$C
[1] "two"  "four" "five" "six"

$D
[1] "six"   "seven"

Eu gostaria decalcular o comprimento da sobreposição entre todas as combinações possíveis em pares dos elementos da lista, ou seja (o formato do resultado não importa):

AintB 2
AintC 2
AintD 0
BintC 1
BintD 0
CintD 1

eu seicombn(x, 2) pode ser usado para obter uma matriz de todas as combinações possíveis em pares em um vetor e quelength(intersect(a, b)) me daria o comprimento da sobreposição de dois vetores, mas não consigo pensar em uma maneira de juntar as duas coisas.

Qualquer ajuda é muito apreciada! Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion