allParticles = allParticles = cmds.ls(type= 'nParticle')
cached = []
for part in allParticles:
    connected = cmds.listConnections( part+".playFromCache", destination=False, source=True )
    if connected is not None:
        cached.append(part)

for c in cached:
    print c + " has cache attached"
uncached = list(set(allParticles) - set(cached))
for u in uncached:
    print u +" is uncached"