Why a Bitcoin transaction that refers its own output as an input is computationally infeasible? It was asked to us as in an assignment : Explain why it is computationally infeasible for anyone to generate a Bitcoin that refers its own output as an input. 
Inspite of searching throught various resources,I was unable to find a satisfactory answer to it.
A transaction input is an unspent transaction output from an existing transaction.     

A transaction's output is the creation of an unspent transaction output from one or more inputs. 

It's computationally infeasible because an input MUST exist before an output.     

The tricky part is the terminology, input vs output. They are both outputs but in different states.  Essentially everything is an output existing in the ever-changing Unspent Transaction Output (UTXO) set, inputs are simply referring to a previous UTXO. An output cannot exist without coming from an input, which can be validated all the way back to its coinbase transaction. 

EDIT:
To dig a little further why it's technically not possible, when building a basic raw bitcoin transaction you need the transaction ID, and N out value of the input being used. Creating a transaction with an invalid or non-existent transaction ID would be rejected if broadcast to the network. Since we know an input must come before an output, one cannot refer to its input as its own output as the transaction ID would not exist yet. 

How To Create a Raw Transaction