Print all frames in between set key frames?
Not an answer to your question, but just some general cleanup of your code:


Using generators instead of single-use lists.
Using string formatting.
Adhering to PEP-8 when it comes to naming things.
Using continue to reduce indentation level.
Using a set to do lookups, rather than a list.
Renamed obj_list to obj, because it holds an object and not a list.




import bpy

import bpy
import math

selection = bpy.context.selected_objects

def get_keyframes(obj_list):
    keyframes = set()
    for obj in obj_list:
        anim = obj.animation_data
        if not anim or not anim.action:
            continue

        for fcu in anim.action.fcurves:
            for keyframe in fcu.keyframe_points:
                x, y = keyframe.co
                ceil = math.ceil(x)
                if ceil not in keyframes:
                    keyframes.add(ceil)
                    yield ceil

def print_details(obj):
    xrot = obj.rotation_euler.x
    yrot = obj.rotation_euler.y
    zrot = obj.rotation_euler.z
    xloc = obj.location.x
    yloc = obj.location.y
    zloc = obj.location.z
    print(obj.name)
    print("X Rot : %.2f\t\tY Rot : %.2f\t\tZ Rot : %.2f" % (xrot, yrot, zrot))
    print("X Loc : %.2f\t\tY Loc : %.2f\t\tZ Loc : %.2f" % (xloc, yloc, zloc))


print("-"*25, "starting","-"*25)
for keys in range of (get_keyframes(selection)): #This part needs to be in range of keyframes. Gives list' object cannot be interpreted as an integer error
    bpy.context.scene.frame_set(key)
    print("key : ", key)
    for obj in selection:
        print_details(obj)
print("-"*25, "ending","-"*25)