How do I generate a list of strings from a list of assigned variables? E.g. convert var1 = 10; var2 = 11; var3 = 17; var4 = 5; compvar = {var1, var2, var3, var4}; (*all variables assigned*) into compvarstr = {"var1", "var2", "var3", "var4"}; Using ToString obviously converts the variables assignments into strings e.g. compvarstr = ToString[#] & /@ compvar gives, {"10", "11", "17", "5"} I'm after the unassigned variable names as strings e.g. {"var1", "var2", "var3", "var4"}; Apologies if this is a duplicate - I had a bit of a look and nothing seemed to answer it. Answer You must introduce some form of holding in you definition of compvar as otherwise, assuming it is defined after var1 , var2 , etc., there is no information to retrieve: var1 = 10; var2 = 11; var3 = 17; var4 = 5; compvar = {var1, var2, var3, var4}; Definition[compvar] compvar = {10, 11, 17,