Not terribly efficient, but two lines.
words = sentence.split()
positions = [words.index(word) + 1 for word in words]
Note that list.index(entry)
will return the index of the first occurrence of entry
. If you're okay with 0-based indices, then the following is pretty concise:
positions = list(map(words.index, words))