permutations = list(permutations(word, int(num)))
By using permutations as the name of a variable, the code is masking the class permutations in module itertools. Try help(permutations) in your Python Shell. You will get Help on list object, not Help on class permutations in module itertools.
I would pass a prompt to input() and rename the variable which is set to the permutations:
word, num = input("Enter a word and an integer with a space in between: ").split(" ")
perms = list(permutations(word, int(num)))
perms.sorted()
As you can see, you have tuples of permutations in the list perms which is sorted in-place.
Now let's see what's happening with the code below:
[print("".join(i)) for i in perms]
That is a list comprehension, a concise way to create lists.
"".join(i) concatenates the strings in each tuple of the list.
print("".join(i)) prints the above concatenation to sys.stdout.
Of note, the print() function returns None. Once print() is done printing, on each call it returns None, so all that the list has are Nones.
I would rewrite the code, like so:
from itertools import permutations
user_input = input("Enter a word and an integer with a space in between: ")
word, num = user_input.split(" ")
perms = list(permutations(word, int(num)))
perms.sort()
for perm in perms:
print("".join(perm))
If you want to be able to reuse the list, you could assign it to a variable:
perms_catted = ["".join(perm) for perm in perms]
Hope that helps.