<p>I'm not quite sure what you're asking, but if you want to find nodes that overlap among different communities in a network then there are several algorithms for this. Here is an article that will get you started: <a href="https://arxiv.org/pdf/1110.5813.pdf" rel="nofollow noreferrer">https://arxiv.org/pdf/1110.5813.pdf</a>. The CFinder algorithm in particular has received alot of attention. Listed <a href="https://stackoverflow.com/questions/20063927/overlapping-community-detection-with-igraph-or-other-libaries">here</a>, you'll find an implementation of the algorithm that you may find useful. Here is code provided by <a href="https://stackoverflow.com/users/156771/tam%C3%A1s">Tamas</a> for CFinder:</p>

<pre><code># CFINDER IMPLEMENTATION
#!/usr/bin/env python
from itertools import combinations
import igraph
import optparse

parser = optparse.OptionParser(usage="%prog [options] infile")
parser.add_option("-k", metavar="K", default=3, type=int, help="use a clique size of K")
options, args = parser.parse_args()
if not args:
    parser.error("Required input file as first argument")

k = options.k
g = igraph.load(args[0], format="ncol", directed=False)
cls = map(set, g.maximal_cliques(min=k))

edgelist = []
for i, j in combinations(range(len(cls)), 2):
    if len(cls[i].intersection(cls[j])) &gt;= k-1:
        edgelist.append((i, j))

cg = igraph.Graph(edgelist, directed=False)
clusters = cg.clusters()
for cluster in clusters:
   members = set()
   for i in cluster:
      members.update(cls[i])
print "\t".join(g.vs[members]["name"])
</code></pre>

<p>Alternatively, I believe NetworkX have a similar interpretation that can be found <a href="https://networkx.github.io/documentation/networkx-1.9.1/reference/generated/networkx.algorithms.community.kclique.k_clique_communities.html" rel="nofollow noreferrer">here</a>.</p>
Correlation between level and overlapping in community
<pre><code>dendo = community.generate_dendrogram(G_fb)
for level in range(len(dendo) - 1) :
    print("partition at level", level,
       "is", partition_at_level(dendo, level))
</code></pre>

<p>So I run the code above on my own data and found that the level of my data is only 1. It seems that the level is the size of the community where in my case, they are small. </p>

<p>But what should I do next to find out overlapping communities, which means a node can be included within more than one communities in the output of the detection algorithm, for instance best_partition which is what I used for community detection. </p>

<p>In other words, is there any correlation between the level and overlapping? You can find the community graph below.<a href="https://i.stack.imgur.com/m95Fx.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/m95Fx.png" alt="enter image description here"></a></p>