Q:

How can I identify and count unique pairs at every level in a list of lists in R?

I have a list of lists that looks like this:
> class(cladelist)
[1] "list"

cladelist <- list( `46` = scan(text=' "KbFk2"  "PeHa3"  "PeHa51" "EeBi27" "EeBi17" "PeHa23" "PeHa44" "EeBi4"  "EeBi26" "PeHa8"  "PeHa26" "EeBi24" "EeBi3" 
 "EeBi20" "KbFk5"  "PeHa15" "PeHa43" "PeHa11" "PeHa12" "PeHa49" "PeHa67" "PeHa17" "PeHa59" "KbFk4"  "PeHa10" "PeHa55"
 "PeHa73" "EeBi23" "PeHa78" "PeHa81" "EeBi11" "PeHa45" "EeBi6"  "EeBi34" "PeHa25" "PeHa52" "PeHa62" "PeHa31" "PeHa65"
 "PeHa47" "PeHa50" "PeHa34" "PeHa54" "PeHa22" "PeHa30"', what=""),

`47`= scan(text='
 "KbFk2"  "EeBi27" "EeBi17" "EeBi4"  "EeBi26" "EeBi3"  "EeBi20" "KbFk5"  "KbFk4"  "EeBi6"  "EeBi34"', what=""),

`48`= scan(text=' "PeHa3"  "PeHa51" "PeHa23" "PeHa44" "PeHa8"  "PeHa26" "EeBi24" "PeHa15" "PeHa43" "PeHa11" "PeHa12" "PeHa49" "PeHa67"
 "PeHa17" "PeHa59" "PeHa10" "PeHa55" "PeHa73" "EeBi23" "PeHa78" "PeHa81" "EeBi11" "PeHa45" "PeHa25" "PeHa52" "PeHa62"
 "PeHa31" "PeHa65" "PeHa47" "PeHa50" "PeHa34" "PeHa54" "PeHa22" "PeHa30"', what=""),

`49`= scan(text=' "PeHa51" "PeHa23" "PeHa44" "PeHa8"  "PeHa26" "EeBi24" "PeHa15" "PeHa43" "PeHa11" "PeHa12" "PeHa49" "PeHa67" "PeHa17"
 "PeHa59" "PeHa10" "PeHa55" "PeHa73" "EeBi23" "PeHa78" "PeHa81" "EeBi11" "PeHa45" "PeHa25" "PeHa52" "PeHa62" "PeHa31"
 "PeHa65" "PeHa47" "PeHa50" "PeHa34" "PeHa54" "PeHa22" "PeHa30"', what=""),

`50`= scan(text=' "EeBi27" "EeBi17" "EeBi4"  "EeBi26" "EeBi3"  "EeBi20" "KbFk5"  "KbFk4"  "EeBi6"  "EeBi34"', what="") )

Each of these sublists (ie "46", "47" etc) represents a clade in a dendogram that I've extracted using:
> cladelist <- clade.members.list(VB.phy, tips = FALSE, tip.labels = TRUE, include.nodes=FALSE)

Im trying to find each unique pair found within each sublist, and calculate the sum of times it appears between all sublists (clades). 
The ideal output would be a dataframe that looks like this where the count is the number of times this pair was found between all sublists (clades):
Pair     Count
Peha1/PeHa2 2
Peha1/PeHa3 4
PeHa1/PeHa4 7
PeHa1/PeHa5 3

What sort of formulas am I looking for?
Background for the question (just for interest, doesnt add that much to question): 
The idea is that I have a data set of 121 of these elements (Peha1, KbFk3, etc). They are artifacts (I'm an archaeologist) that I'm evaluating using 3D geometric morphometrics. The problem is that these artifacts are not all complete; they are damaged or degraded and thus provide an inconsistent amount of data. So I've had to reduce what data I use per artifact to have a reasonable, yet still inconsistent, sample size. By selecting certain variables to evaluate, I can get useful information, but it requires that I test every combination of variables. One of my analyses gives me the dendograms using divisive hierarchical clustering. 
Counting the frequency of each pair as found between each clade should be the strength of the relationship of each pair of artifacts. That count I will then divide by total number of clades in order to standardize for the following step. Once I've done this for X number of dendograms, I will combine all these values for each pair, and divide them by the number representing whether that pair appeared in a dendogram (if it shows up in 2 dendograms, that I divide by 2), because each pair will not appear in each of my tests and I have to standardize it so that more complete artifacts that appear more often in my tests don't have too much more weight. This should allow me to evaluate which pairs have the strongest relationships. 

A:

This falls into a set of association kind of problems for which I find the widyr package to be super useful, since it does pairwise counts and correlations. (The stack() function just converts into a dataframe for the rest to flow).
I couldn't check against your sample output, but for an example like "PeHa23/PeHa51", the output shows they are paired together in 3 different clades.
This currently doesn't include zero counts to exhaust all possible pairs, but that could be shown as well (using complete()). 
UPDATE: Made references clearer for packages like dplyr, and filtered so that counts are non-directional (item1-item2 is same as item2-item1 and can be filtered).
library(tidyverse)
library(widyr)

df <- stack(cladelist) %>%
  dplyr::rename(clade = "ind", artifact = "values")
df %>%
  widyr::pairwise_count(feature = clade, item = artifact) %>%
  filter(item1 > item2) %>%
  mutate(Pair = paste(item1, item2, sep = "/")) %>%
  dplyr::select(Pair, Count = n) 
#> # A tibble: 990 x 2
#>    Pair         Count
#>    <chr>        <dbl>
#>  1 PeHa3/KbFk2      1
#>  2 PeHa51/KbFk2     1
#>  3 PeHa23/KbFk2     1
#>  4 PeHa44/KbFk2     1
#>  5 PeHa8/KbFk2      1
#>  6 PeHa26/KbFk2     1
#>  7 KbFk5/KbFk2      2
#>  8 PeHa15/KbFk2     1
#>  9 PeHa43/KbFk2     1
#> 10 PeHa11/KbFk2     1
#> # … with 980 more rows

